![Cron Job 和脚本文件](https://linux22.com/image/924885/Cron%20Job%20%E5%92%8C%E8%84%9A%E6%9C%AC%E6%96%87%E4%BB%B6.png)
我对这个操作系统还很陌生,但学得很快。
我按照以下链接中的说明进行操作,一切都按要求完成
https://www.dynu.com/DynamicDNS/IPUpdateClient/RaspberryPi-Dynamic-DNS
cron 任务在给定时间运行,我可以通过查看系统日志来验证它是否执行任何操作。但是当我运行命令时
echo url="https://api.dynu.com/nic/update?username=USERNAME&password=PASSWORD" | curl -k -o ~/dynudns/dynu.log -K -
在命令提示符下,我得到了结果,并且信息在 dynu.com 网站上更新。这意味着脚本没有运行(如果我没记错的话)。我在 18.04 和 raspberry pi 3 model B 上尝试过。有人可以帮忙吗?
答案1
遇到了与您的描述完全相同的问题(dynu 和 duckdns 的教程相同)。
对我来说,它帮助我改变了
*/5 * * * * /home/pi/duckdns/duck.sh >/dev/null 2>&1
到
4,9,14,19,24,29,34,39,44,49,54,59 * * * * /home/pi/duckdns/duck.sh >/dev/null 2>&1
两种方式我都能看到程序运行
pi@raspberrypi:~ $ service cron status
● cron.service - Regular background program processing daemon
Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2021-01-02 21:27:11 GMT; 9min ago
Docs: man:cron(8)
Main PID: 285 (cron)
Tasks: 1 (limit: 881)
CGroup: /system.slice/cron.service
└─285 /usr/sbin/cron -f
Jan 02 21:27:11 raspberrypi systemd[1]: Started Regular background program processing daemon.
Jan 02 21:27:12 raspberrypi cron[285]: (CRON) INFO (pidfile fd = 3)
Jan 02 21:27:12 raspberrypi cron[285]: (CRON) INFO (Running @reboot jobs)
Jan 02 21:29:01 raspberrypi CRON[557]: pam_unix(cron:session): session opened for user pi by (uid=0)
Jan 02 21:29:01 raspberrypi CRON[558]: (pi) CMD (/home/pi/duckdns/duck.sh >/dev/null 2>&1)
Jan 02 21:29:03 raspberrypi CRON[557]: pam_unix(cron:session): session closed for user pi
Jan 02 21:34:01 raspberrypi CRON[613]: pam_unix(cron:session): session opened for user pi by (uid=0)
Jan 02 21:34:01 raspberrypi CRON[614]: (pi) CMD (/home/pi/duckdns/duck.sh >/dev/null 2>&1)
Jan 02 21:34:02 raspberrypi CRON[613]: pam_unix(cron:session): session closed for user pi
但仅通过指定程序运行的分钟数,它实际上就更新了 duckdns 站点上的 ip 地址。多次测试并重新启动 raspberry,结果始终相同。
希望这可以帮助。