有时Rsync无法从远程计算机复制文件

时间:2013-06-03 09:16:13

标签: perl tcl rsync expect

#Bypassing the ssh
spawn -noecho /usr/bin/ssh -o 'StrictHostKeyChecking=no' "$user\@$ip"; 

if { $argc == $total_arguments} {
set REMOTEDIR "$remote_dir";

spawn -noecho rsync -r $user\@$ip:$destination/* $remote_dir
expect "Password:"
} 

以上是我将文件从远程计算机复制到主目录的代码的一部分。但是在执行脚本时,有时无法复制所有文件。 可能是失败的原因以及如何验证是否复制了所有文件?

1 个答案:

答案 0 :(得分:1)

验证:

如果要检查是否已复制所有文件,可以对远程目录中的文件列表执行简单的glob或列表。然后与目标目录中的glob文件列表进行比较。

set globResult [ exec rsh -l $user $host "cd $dir; ls -l | wc -l" ]

或者如果你走得更远,你可以随时在远程和目标目录上进行校验和。

至于失败的原因,可能是网络或服务器问题。 在进行rsync时,是否要检查返回退出状态以确保rsync已成功完成?