我想每分钟自动运行rsync(在远程linux系统中)。因此,无论是在一个系统中进行的更改(如下所述,在test.txt中),都应在同一分钟间隔内在另一个系统中受到影响。
为此,我在sudo crontab -e
中进行了更改,并添加了
*/1 * * * * /home/john/rsync.sh
rsync.sh
包含两个命令:
sudo rsync -av /home/john1/test.txt remote@remote_ip:
sudo rsync -av --update /home/john1/test.txt remote@remote_ip:
当我手动运行rsync.sh
时,所有更改都会成功受到影响。
答案 0 :(得分:0)
如果将其添加到crontab根目录中,则无需使用sudo
启动rsync命令。
在crontab中运行的事物可能不会具有相同的环境变量。如果不确定,可以将绝对路径添加到rsync,例如/usr/bin/rsync
。还要检查其他环境变量,例如运行set
。
当您手动运行它时,您已经在可以运行它的特定外壳中。但是当cron运行它时,它不知道使用哪个解释器。始终使用#!/usr/bin/bash
(或您喜欢的shell)启动脚本。和/或调用您的cron作业,指定要使用的外壳,例如:
*/1 * * * * /bin/bash /home/john/rsync.sh
我希望这会有所帮助。 ;)