【问题标题】:Linux Crontab does not copy fileLinux Crontab 不复制文件
【发布时间】:2020-10-01 17:12:12
【问题描述】:

我对以下 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 作业都运行良好,只是这个新的复制脚本不是。

有什么想法吗?

【问题讨论】:

    标签: ubuntu cron


    【解决方案1】:

    通过 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 作业操作,您可以使用带有键 -e(编辑)-l(列表)的命令 crontab:

    sudo crontab -e
    

    我认为这也是你的好工具:

    https://crontab.guru/

    【讨论】:

      猜你喜欢
      • 2023-03-14
      • 1970-01-01
      • 2018-03-27
      • 1970-01-01
      • 2016-03-01
      • 2018-06-13
      • 1970-01-01
      • 2012-09-14
      • 1970-01-01
      相关资源
      最近更新 更多