15分钟后将更新的文件从一台服务器复制到另一台服务器

时间:2015-02-06 12:14:44

标签: linux shell expect rsync scp

我希望在生成新文件时每15分钟将更新的文件从一台服务器复制到另一台服务器。我用expect脚本编写了代码。它工作正常,但15分钟后它复制目录中的所有文件,即它也替换并复制最新的文件。我只想要更新文件(每15分钟更新一次)来复制而不是所有文件。

这是我的剧本:

while :
do
        expect -c "spawn scp -P $Port sftpuser@$IP_APP:/mnt/oam/PmCounters/LBO* Test/;expect \"password\";send \"password\r\";expect eof"
        sleep 900
done

我可以使用rsync或任何其他方法吗?

1 个答案:

答案 0 :(得分:0)

rsync默认只复制更改的文件或新文件。例如,使用语法:

rsync -avz -e ssh remoteuser@remotehost:/remote/dir /local/dir/ 

指定ssh作为要使用的远程shell(-e ssh ...),-a激活归档模式,-v设置详细输出,-z压缩传输。

您可以通过cronjob每15分钟运行一次。

对于密码,您可以使用$RSYNC_PASSWORD环境变量或--password-file标志。