phddns 自动检查状态并重启
经验与学习 2025/4/30 21:17:10 点击:不统计
使用花生壳 phddns 做本地服务会出现离线情况,下面是做定时任务自动重启脚本。
我用的是ubuntu 账户名 forasp
(1) 首先编辑 sudo 重启phddns服务不用输入 密码权限
sudo visudo
添加一行:
forasp ALL=(ALL) NOPASSWD: /usr/bin/phddns
按下: Ctrl + O(表示“写入”/保存)
然后按下:Enter(确认文件名)
按下: Ctrl + X(退出编辑器)
(2) 新增启动脚本, 保存为 phddns_check.sh
#!/bin/bash
# 获取当前脚本所在目录
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
# 定义 phddns 完整路径
PHDDNS_CMD="/usr/bin/phddns"
# 检查 phddns 状态(不使用 sudo,直接执行已配置免密)
STATUS_OUTPUT=$($PHDDNS_CMD status)
# 检查状态是否包含 "ONLINE"
if echo "$STATUS_OUTPUT" | grep -q "ONLINE"; then
echo "phddns 状态正常:ONLINE"
else
echo "phddns 状态异常,尝试重启..."
# 获取当前时间
CURRENT_TIME=$(date "+%Y-%m-%d %H:%M:%S")
# 写入 offline.txt 文件(每次一行)
echo "$CURRENT_TIME phddns not ONLINE" >> "$SCRIPT_DIR/offline.txt"
# 尝试重启 phddns
$PHDDNS_CMD restart
fi
(3) 新增定时任务
crontab -e
*/1 * * * * /opt/shell/phddns_check.sh >>/opt/shell/phddns_log.log
这样,每分钟检查一次,当掉线后自动启动
·上一篇:nginx配置参数变量 >> ·下一篇:网站制作学习网