SCP仅传送修改过的文件


30

我正在使用以下命令跨服务器传输文件

scp -rc blowfish /source/directory/* username@domain.net:/destination/directory

有没有办法像updatecommand for 那样仅传输文件修改的文件cp

Answers:


52

rsync 是你的朋友。

rsync -ru /source/directory/* username@domain.net:/destination/directory

如果希望它删除目标位置上源文件中不再存在的文件,请添加该--delete选项。


4
虽然,如果要同步到Web服务器并且该服务器缓存HTML,则可能不希望使用--delete,因为过时页面上的访问者可能会请求不再存在的资产。
杰克逊

@Jackson干净的过程不会在源中包含诸如缓存或配置之类的变量数据。
克里斯·皮伦

在某些情况下,我处理过域之外没有rsync但拥有的服务器scp。即使需要几行脚本,是否存在可比的解决方案?
iX3

答案是有帮助的,但问题是可以使用scp本身来实现。
Mladen B.

1

通常,有人问scp是因为有原因。即无法在目标上安装rsyncd。

files=`find . -newermt "-3600 secs"`

for file in $files
do
       sshpass -p "" scp "$file" "root@$IP://usr/local/www/current/$file"
done
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.