每次我的 pfSense 的 IP 地址发生变化时,我都需要手动登录面板,转到服务 > 动态 DNS > 操作 [编辑] > ♻ 保存并强制更新
请问,如何使用 Cron 执行此操作?我已经安装了“Cron”包并执行以下操作(基于 ServerFault 上的另一个问题 - 它不起作用。)
1 1 * * * 根 /usr/bin/nice -n20 /etc/rc.force.dyndns.update
rc.force.dyndns.update 中的代码是:
#!/bin/sh
rm /cf/conf/dyndns\_wancustom\\'\\'0.cache
/etc/rc.dyndns.update
没用。问题一直存在。
答案1
好的,经过近 4 个月的时间,我能够通过使用以下代码并使其在 cronjob 中每 30 分钟运行一次来解决这个问题。
计划任务:*/30 * * * * root /usr/bin/nice -n20 /etc/rc.force.dyndns.update
#!/bin/sh
dynamicHost=""
myIP=`dig +short myip.opendns.com @resolver1.opendns.com`
myIP_error=$?
noIP=`dig $dynamicHost | grep -A1 ANSWER | grep IN | cut -f 6`
if [ "$myIP" == "$noIP" ] ; then
exit
else
if [ "$myIP_error" -eq 0 ]
then
/etc/rc.dyndns.update
else
exit
fi
fi
这样做之后我没再遇到任何问题。
答案2
因为您只需修改原始命令(您的命令格式不正确)
#!/bin/sh
rm /cf/conf/dyndns\_wancustom\\'\\'0.cache
/etc/rc.dyndns.update
成为 =>
#!/bin/sh
rm /cf/conf/dyndns\_wancustom\'\'*.cache
/etc/rc.dyndns.update
通过此修改,所有 dyncache 都将被删除。
一切都会顺利;)