Cronjob 没有被执行

Cronjob 没有被执行

rsync-books我正在尝试使用 crontab运行。打字crontab -e输出:

55 12 * * * diegoaguilar /storage/bin/rsync-books

哪里/storage/bin/rsync-books看起来像这样:

if [ -d "/media/Beagle/books" ]; then
  rsync -rP --delete --verbose /storage/Copy/Books/ /media/Beagle/books >> ~/rsync-books.log
fi

只是为了确认,该脚本具有可执行权限。我当时尝试等待命令,当 /media/Beagle/books 存在时,它既没有 rsync 任何东西,也没有创建日志文件。

我有什么遗漏的吗?

答案1

Cron 在没有环境的情况下运行命令,因此没有PATH设置变量。因此,您需要rsync在脚本中指定完整路径。

if [ -d "/media/Beagle/books" ]; then
  /usr/bin/rsync -rP --delete --verbose /storage/Copy/Books/ /media/Beagle/books >> ~/rsync-books.log
fi

另外,如果您正在运行,crontab -e请不要在 crontab 条目中包含用户名。你的 crontab 应该看起来像

55 12 * * * /storage/bin/rsync-books

编辑: cron 在非交互式 shell 中运行,因此环境(和路径)可能与您期望的不同。最好在将从 cron 运行的任何脚本中指定完整路径。

相关内容