diff --git a/.github/workflows/dashboard.yml b/.github/workflows/dashboard.yml index 6940ccd..b81645e 100644 --- a/.github/workflows/dashboard.yml +++ b/.github/workflows/dashboard.yml @@ -42,11 +42,13 @@ jobs: - name: Purge jsdelivr cache run: | curl -s https://purge.jsdelivr.net/gh/${{ github.repository_owner }}/nezha@master/script/install.sh + curl -s https://purge.jsdelivr.net/gh/${{ github.repository_owner }}/nezha@master/script/fetch.sh curl -s https://purge.jsdelivr.net/gh/${{ github.repository_owner }}/nezha@master/script/nezha-agent.service curl -s https://purge.jsdelivr.net/gh/${{ github.repository_owner }}/nezha@master/script/docker-compose.yaml curl -s https://purge.jsdelivr.net/gh/${{ github.repository_owner }}/nezha@master/script/config.yaml LOWER_USERNAME=$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]') curl -s https://purge.jsdelivr.net/gh/$LOWER_USERNAME/nezha@master/script/install.sh + curl -s https://purge.jsdelivr.net/gh/$LOWER_USERNAME/nezha@master/script/fetch.sh curl -s https://purge.jsdelivr.net/gh/$LOWER_USERNAME/nezha@master/script/nezha-agent.service curl -s https://purge.jsdelivr.net/gh/$LOWER_USERNAME/nezha@master/script/docker-compose.yaml curl -s https://purge.jsdelivr.net/gh/$LOWER_USERNAME/nezha@master/script/config.yaml diff --git a/README.md b/README.md index d38bff2..897931f 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@


-    +   

:trollface: 哪吒监控 一站式轻监控轻运维系统。支持系统状态、HTTP(SSL 证书变更、即将到期、到期)、TCP、Ping 监控报警,命令批量执行和计划任务。

@@ -21,15 +21,20 @@ **推荐配置:** 安装前准备 _两个域名_,一个可以 **接入 CDN** 作为 _公开访问_,比如 (status.nai.ba);另外一个解析到面板服务器作为 Agent 连接 Dashboard 使用,**不能接入 CDN** 直接暴露面板主机 IP,比如(randomdashboard.nai.ba)。 ```shell -curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh -./nezha.sh +curl -sSL https://raw.githubusercontent.com/naiba/nezha/master/script/fetch.sh | bash +/opt/nezha/nezha.sh ``` 国内镜像加速: ```shell -curl -L https://cdn.jsdelivr.net/gh/naiba/nezha@master/script/install.sh -o nezha.sh && chmod +x nezha.sh -CN=true ./nezha.sh +curl -sSL https://cdn.jsdelivr.net/gh/naiba/nezha@master/script/fetch.sh | CN=true bash +CN=true /opt/nezha/nezha.sh +``` + +再次运行仅需: +``` +/opt/nezha/nezha.sh ``` _\* 使用 WatchTower 可以自动更新面板,Windows 终端可以使用 nssm 配置自启动(见尾部教程)_ diff --git a/script/fetch.sh b/script/fetch.sh new file mode 100644 index 0000000..ca2f5df --- /dev/null +++ b/script/fetch.sh @@ -0,0 +1,9 @@ +if [[ -z "${CN}" ]]; then + GITHUB_RAW_URL="raw.githubusercontent.com/naiba/nezha/master" +else + GITHUB_RAW_URL="cdn.jsdelivr.net/gh/naiba/nezha@master" +fi +mkdir -p /opt/nezha +chmod 777 /opt/nezha +curl -sSL https://${GITHUB_RAW_URL}/script/install.sh -o /opt/nezha/nezha.sh +chmod +x /opt/nezha/nezha.sh \ No newline at end of file diff --git a/script/install.sh b/script/install.sh index 37e1a1e..e0c1b9c 100755 --- a/script/install.sh +++ b/script/install.sh @@ -11,7 +11,7 @@ NZ_BASE_PATH="/opt/nezha" NZ_DASHBOARD_PATH="${NZ_BASE_PATH}/dashboard" NZ_AGENT_PATH="${NZ_BASE_PATH}/agent" NZ_AGENT_SERVICE="/etc/systemd/system/nezha-agent.service" -NZ_VERSION="v0.5.0" +NZ_VERSION="v0.6.0" red='\033[0;31m' green='\033[0;32m' @@ -93,6 +93,28 @@ confirm() { fi } +update_script () { + echo -e "> 更新脚本" + + mkdir -p $NZ_BASE_PATH + chmod 777 -R $NZ_BASE_PATH + curl -sL https://${GITHUB_RAW_URL}/script/install.sh -o /tmp/nezha.sh + new_version=$(cat /tmp/nezha.sh | grep "NZ_VERSION" | head -n 1 | awk -F "=" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g') + if [ ! -n "$new_version" ]; then + echo -e "脚本获取失败,请检查本机能否链接 https://${GITHUB_RAW_URL}/script/install.sh" + return 1 + fi + echo -e "当前最新版本为: ${new_version}" + mv -f /tmp/nezha.sh ${NZ_BASE_PATH}/nezha.sh && chmod a+x ${NZ_BASE_PATH}/nezha.sh + + echo -e "脚本获取成功,脚本固定位置为${NZ_BASE_PATH}/nezha.sh,请今后使用 ${NZ_BASE_PATH}/nezha.sh 运行脚本" + echo -e "10s后执行新脚本" + sleep 10s + clear + exec ${NZ_BASE_PATH}/nezha.sh + exit 0 +} + before_show_menu() { echo && echo -n -e "${yellow}* 按回车返回主菜单 *${plain}" && read temp show_menu @@ -156,12 +178,22 @@ install_agent() { echo -e "> 安装监控Agent" + echo -e "正在获取监控Agent版本号" + + local version=$(curl -sL "https://api.github.com/repos/naiba/nezha/releases/latest" | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g') + + if [ ! -n "$version" ]; then + echo -e "获取版本号失败,请检查本机能否链接 https://api.github.com/repos/naiba/nezha/releases/latest" + else + echo -e "当前最新版本为: ${version}" + fi + # 哪吒监控文件夹 mkdir -p $NZ_AGENT_PATH chmod 777 -R $NZ_AGENT_PATH echo -e "正在下载监控端" - wget -O nezha-agent_linux_${os_arch}.tar.gz https://${GITHUB_URL}/naiba/nezha/releases/latest/download/nezha-agent_linux_${os_arch}.tar.gz >/dev/null 2>&1 + wget -O nezha-agent_linux_${os_arch}.tar.gz https://${GITHUB_URL}/naiba/nezha/releases/download/${version}/nezha-agent_linux_${os_arch}.tar.gz >/dev/null 2>&1 if [[ $? != 0 ]]; then echo -e "${red}Release 下载失败,请检查本机能否连接 ${GITHUB_URL}${plain}" return 0 @@ -394,20 +426,21 @@ clean_all() { show_usage() { echo "哪吒监控 管理脚本使用方法: " echo "--------------------------------------------------------" - echo "./nbdomain.sh - 显示管理菜单" - echo "./nbdomain.sh install_dashboard - 安装面板端" - echo "./nbdomain.sh modify_dashboard_config - 修改面板配置" - echo "./nbdomain.sh start_dashboard - 启动面板" - echo "./nbdomain.sh stop_dashboard - 停止面板" - echo "./nbdomain.sh restart_and_update - 重启并更新面板" - echo "./nbdomain.sh show_dashboard_log - 查看面板日志" - echo "./nbdomain.sh uninstall_dashboard - 卸载管理面板" + echo "/opt/nezha/nezha.sh - 显示管理菜单" + echo "/opt/nezha/nezha.sh install_dashboard - 安装面板端" + echo "/opt/nezha/nezha.sh modify_dashboard_config - 修改面板配置" + echo "/opt/nezha/nezha.sh start_dashboard - 启动面板" + echo "/opt/nezha/nezha.sh stop_dashboard - 停止面板" + echo "/opt/nezha/nezha.sh restart_and_update - 重启并更新面板" + echo "/opt/nezha/nezha.sh show_dashboard_log - 查看面板日志" + echo "/opt/nezha/nezha.sh uninstall_dashboard - 卸载管理面板" echo "--------------------------------------------------------" - echo "./nbdomain.sh install_agent - 安装监控Agent" - echo "./nbdomain.sh modify_agent_config - 修改Agent配置" - echo "./nbdomain.sh show_agent_log - 查看Agent日志" - echo "./nbdomain.sh uninstall_agent - 卸载Agen" - echo "./nbdomain.sh restart_agent - 重启Agen" + echo "/opt/nezha/nezha.sh install_agent - 安装监控Agent" + echo "/opt/nezha/nezha.sh modify_agent_config - 修改Agent配置" + echo "/opt/nezha/nezha.sh show_agent_log - 查看Agent日志" + echo "/opt/nezha/nezha.sh uninstall_agent - 卸载Agen" + echo "/opt/nezha/nezha.sh restart_agent - 重启Agen" + echo "/opt/nezha/nezha.sh update_script - 更新脚本" echo "--------------------------------------------------------" } @@ -415,8 +448,6 @@ show_menu() { echo -e " ${green}哪吒监控管理脚本${plain} ${red}${NZ_VERSION}${plain} --- https://github.com/naiba/nezha --- - ${green}0.${plain} 退出脚本 - ————————————————- ${green}1.${plain} 安装面板端 ${green}2.${plain} 修改面板配置 ${green}3.${plain} 启动面板 @@ -430,8 +461,11 @@ show_menu() { ${green}10.${plain} 查看Agent日志 ${green}11.${plain} 卸载Agent ${green}12.${plain} 重启Agent + ————————————————- + ${green}0.${plain} 退出脚本 + ${green}13.${plain} 更新脚本 " - echo && read -p "请输入选择 [0-12]: " num + echo && read -p "请输入选择 [0-13]: " num case "${num}" in 0) @@ -473,6 +507,9 @@ show_menu() { 12) restart_agent ;; + 13) + update_script + ;; *) echo -e "${red}请输入正确的数字 [0-12]${plain}" ;; @@ -519,6 +556,9 @@ if [[ $# > 0 ]]; then "restart_agent") restart_agent 0 ;; + "update_script") + update_script 0 + ;; *) show_usage ;; esac else