如何在linux中自动化rsync?

问题描述 投票:0回答:1

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

cron ubuntu-16.04 rsync
1个回答
0
投票

如果您在root crontab中添加了此项,则无需使用sudo启动rsync命令。

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

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

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

我希望这有帮助。 ;)

© www.soinside.com 2019 - 2024. All rights reserved.