Ubuntu Linux Crontab不复制文件

Ubuntu Linux Crontab不复制文件,ubuntu,cron,Ubuntu,Cron,我对以下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之前,我按原样测试了脚本,并按预期工作 我还决定

我对以下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每天都在这个日志文件中写入

我运行的是Ubuntu 18服务器,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