我希望在生成新文件时每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或任何其他方法吗?
答案 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
标志。