我对以下crontab条目有问题。
14 8 * * * sudo cp /home/george/service/logs/daily.log "/home/george/service/logs/daily_$(date +%Y%m%d -d "yesterday").log"
此条目应在每天服务器时间8:14执行。
它的目的是备份日常日志,以便妥善保管和进一步分析。
在将脚本输入crontab之前,我按原样测试了该脚本,并按预期工作。
此外,我决定使用sudo,因为我不想被用户特权所困扰。
我确信cron服务正在运行,因为还有另一个cronjob每天都在这个日志文件中写入。
我正在运行一台Ubuntu18服务器,cron作业是用/etc/crontab编写的
最初的cron作业是由我的一位同事使用以下命令编写的。
sudo nano /etc/crontab
所有其他cron作业都工作得很好,只是这个新的复制脚本没有。
有什么想法吗?
通过crontab启动的进程通常使用sh(而不是bash(,因此您需要编写命令的完整路径。在你的例子中,我认为它会是这样的:
14 8 * * * /usr/bin/sudo /usr/bin/cp /home/george/service/logs/daily.log "/home/george/service/logs/daily_$(date +%Y%m%d -d "yesterday").log"
您还可以在/var/log/syslog:中检查cron作业输出
sudo grep CRON /var/log/syslog
对于cron作业操作,可以使用命令crontab和键-e(编辑(-l(列表(:
sudo crontab -e
此外,我认为这将是一个很好的工具为你:
https://crontab.guru/