如何在Linux中自动执行rsync?

时间:2018-09-06 06:29:08

标签: cron ubuntu-16.04 rsync

我想每分钟自动运行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时,所有更改都会成功受到影响。

1 个答案:

答案 0 :(得分:0)

如果将其添加到crontab根目录中,则无需使用sudo启动rsync命令。

在crontab中运行的事物可能不会具有相同的环境变量。如果不确定,可以将绝对路径添加到rsync,例如/usr/bin/rsync。还要检查其他环境变量,例如运行set

当您手动运行它时,您已经在可以运行它的特定外壳中。但是当cron运行它时,它不知道使用哪个解释器。始终使用#!/usr/bin/bash(或您喜欢的shell)启动脚本。和/或调用您的cron作业,指定要使用的外壳,例如:

*/1 * * * * /bin/bash /home/john/rsync.sh

我希望这会有所帮助。 ;)