mirror of
https://github.com/xkatld/lxdapi-web-server.git
synced 2026-05-09 06:37:59 +08:00
113 lines
2.5 KiB
Bash
113 lines
2.5 KiB
Bash
#!/bin/bash
|
|
|
|
INSTALL_DIR="/opt/lxdapi"
|
|
SERVICE_NAME="lxdapi"
|
|
SCRIPT_PATH="/usr/local/bin/lxdapi"
|
|
|
|
GREEN='\033[0;32m'
|
|
NC='\033[0m'
|
|
|
|
if [ "$(realpath "$0")" != "$SCRIPT_PATH" ]; then
|
|
cp "$0" "$SCRIPT_PATH"
|
|
chmod +x "$SCRIPT_PATH"
|
|
echo "lxdapi 命令已安装"
|
|
echo "用法: lxdapi 或 lxdapi {start|stop|restart|status|config|machine-id}"
|
|
exit 0
|
|
fi
|
|
|
|
wait_progress() {
|
|
echo "等待服务响应..."
|
|
for i in {1..10}; do
|
|
printf "\r[%-10s] %d/10s" "$(printf '#%.0s' $(seq 1 $i))" "$i"
|
|
sleep 1
|
|
done
|
|
echo
|
|
}
|
|
|
|
do_start() {
|
|
systemctl start $SERVICE_NAME
|
|
echo "lxdapi 已启动"
|
|
wait_progress
|
|
systemctl status $SERVICE_NAME --no-pager | head -5
|
|
}
|
|
|
|
do_stop() {
|
|
systemctl stop $SERVICE_NAME
|
|
echo "lxdapi 已停止"
|
|
sleep 1
|
|
systemctl status $SERVICE_NAME --no-pager | head -5
|
|
}
|
|
|
|
do_restart() {
|
|
systemctl restart $SERVICE_NAME
|
|
echo "lxdapi 已重启"
|
|
wait_progress
|
|
systemctl status $SERVICE_NAME --no-pager | head -5
|
|
}
|
|
|
|
do_status() {
|
|
systemctl status $SERVICE_NAME --no-pager | head -5
|
|
echo
|
|
echo "===== 最近日志 ====="
|
|
journalctl -u $SERVICE_NAME -n 10 --no-pager
|
|
}
|
|
|
|
do_config() {
|
|
CONFIG_FILE="$INSTALL_DIR/configs/config.yaml"
|
|
PORT=$(grep "port:" "$CONFIG_FILE" | head -1 | awk '{print $2}')
|
|
API_KEY=$(grep "api_key:" "$CONFIG_FILE" | awk -F'"' '{print $2}')
|
|
echo "端口: $PORT"
|
|
echo "API密钥: $API_KEY"
|
|
}
|
|
|
|
do_machine_id() {
|
|
ARCH=$(uname -m)
|
|
case $ARCH in
|
|
x86_64) ARCH="amd64" ;;
|
|
aarch64|arm64) ARCH="arm64" ;;
|
|
esac
|
|
$INSTALL_DIR/lxdapi-$ARCH --machine-id
|
|
}
|
|
|
|
show_menu() {
|
|
echo
|
|
echo "================================"
|
|
echo " LXDAPI 管理工具"
|
|
echo "================================"
|
|
echo "1. 启动"
|
|
echo "2. 停止"
|
|
echo "3. 重启"
|
|
echo "4. 状态"
|
|
echo "5. 配置"
|
|
echo "6. 机器码"
|
|
echo "0. 退出"
|
|
echo "================================"
|
|
read -rp "$(echo -e "${GREEN}请选择 [0-6]: ${NC}")" choice
|
|
|
|
case "$choice" in
|
|
1) do_start ;;
|
|
2) do_stop ;;
|
|
3) do_restart ;;
|
|
4) do_status ;;
|
|
5) do_config ;;
|
|
6) do_machine_id ;;
|
|
0) exit 0 ;;
|
|
*) echo "无效选择" ;;
|
|
esac
|
|
show_menu
|
|
}
|
|
|
|
case "$1" in
|
|
start) do_start ;;
|
|
stop) do_stop ;;
|
|
restart) do_restart ;;
|
|
status) do_status ;;
|
|
config) do_config ;;
|
|
machine-id) do_machine_id ;;
|
|
"") show_menu ;;
|
|
*)
|
|
echo "用法: lxdapi 或 lxdapi {start|stop|restart|status|config|machine-id}"
|
|
exit 1
|
|
;;
|
|
esac
|