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 运行的任何脚本中指定完整路径。