#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:"
}
以上是我将文件从远程计算机复制到主目录的代码的一部分。但是在执行脚本时,有时无法复制所有文件。 可能是失败的原因以及如何验证是否复制了所有文件?
答案 0 :(得分:1)
验证:
如果要检查是否已复制所有文件,可以对远程目录中的文件列表执行简单的glob或列表。然后与目标目录中的glob文件列表进行比较。
set globResult [ exec rsh -l $user $host "cd $dir; ls -l | wc -l" ]
或者如果你走得更远,你可以随时在远程和目标目录上进行校验和。
至于失败的原因,可能是网络或服务器问题。 在进行rsync时,是否要检查返回退出状态以确保rsync已成功完成?