【问题标题】:How to get Crontab and Tar working together correctly [closed]如何让 Crontab 和 Tar 正确协同工作 [关闭]
【发布时间】:2016-07-08 07:52:12
【问题描述】:

我一直在尝试让 crontab 按计划运行 tar 命令,但它似乎根本没有真正按时间间隔运行任务。 我放入 crontab 文件的代码行如下。

1 * * * * tar cvf backup.tar . >> ~/testcron.log

如果我在终端中运行 tar 命令,它会自行运行,所以我不确定为什么它不运行。

谢谢

【问题讨论】:

  • 错误的站点,不是编程问题。试试superuser.com/questions/tagged/linux
  • 回答你的问题:使用完整路径。
  • 不要忘记当你使用>>(附加)时,你最初的失败尝试将在日志文件的顶部(一直在那里!),跳到底部查看最新的运行输出。我建议使用...> cronlog.$(date +%Y%m%d.%H%M) 制作带有日期/时间戳的日志文件(您需要在crontab 中转义% 字符,例如\%Y\%m\%m...)。祝你好运。

标签: linux unix ubuntu crontab tar


【解决方案1】:

这里有两件事我可以想象是有问题的:

  1. 如果这是/etc/crontab.d 中文件的一部分或/etc/crontab 的一部分,cron 需要在第 6 列中输入用户名。所以它会是这样的:

    1 * * * * root tar cvf backup.tar . >> ~/testcron.log
    
  2. 您可能希望将. 替换为正确的绝对路径。我不确定 cron 执行 cronjob 时当前目录是什么,所以只需使用绝对路径即可。

【讨论】:

  • 用户名字段取决于是在谈论 /etc/crontab 还是使用 crontab -e
  • 目前的陈述 1 是错误的。
  • @KurtStutsman 哦,我不知道crontab -e,我一直只使用/etc/crontab{,.d/}。感谢您指出这一点。
  • 我尝试添加一个直接路径,这就是 crontab 在 crontab -e 1 * * * * tar cvf /home/ollie/Desktop/backup.tar /home/ollie/Desktop >> ~/testcron.log 中的样子
  • 这没什么问题,应该可以的。
【解决方案2】:

无法发表评论

cron PATH 变量可能与您的用户 PATH 变量不同 如果是这种情况,您要么必须指定 tar 可执行文件的绝对路径,要么将本地 PATH 导出到 crontab

更多信息here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-19
    • 2020-01-17
    • 2017-11-15
    • 2020-01-13
    • 2014-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多