1
#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:"
} 

上記は、リモート マシンからホーム ディレクトリにファイルをコピーするコードの一部です。ただし、スクリプトの実行中に、すべてのファイルのコピーに失敗することがあります。失敗の理由と、すべてのファイルがコピーされたかどうかを検証する方法は??

4

1 に答える 1

1

検証用:

すべてのファイルがコピーされたかどうかを確認したい場合は、リモートディレクトリ内のファイルのリストに対して単純なグロブまたはリストを実行できます。次に、ターゲット ディレクトリ内のファイルのグロブ リストと比較します。

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

または、さらに進むと、リモート ディレクトリとターゲット ディレクトリの両方でいつでもチェックサムを実行できます。

失敗の理由については、ネットワークまたはサーバーの問題である可能性があります。rsync を実行しているときに、リターンの終了ステータスをチェックして、rsync が正常に完了したことを確認しましたか?

于 2014-05-18T07:42:40.630 に答える