リモートサイトからサイズを取得するために必要なパスを含む約40,000行のファイルがあります(rsh
&du -scL
コマンドを使用)。試しましたが、while read line
リモート接続のため100行以上経過すると終了します。そのため、すべての行をファイルにコピーしてdu -scL
ファイルに入力しようとしましたが、rsh
「コマンドがあまりにもキム」というメッセージが表示され、再競合が発生しました。rsh
リモートサイトへのすべてのパスのサイズを使用して計算するスクリプトを作成する必要がありますdu
。
#!bin/bash
for line in `cat $destbang1`
do
rsh vnc.<remotesite> du -sL $line | awk '{print $1}' >> /tmp/size1.txt
done
total=`gawk '{ sum += $1 }; END { print sum}' /tmp/size1.txt`
echo $total
答え1
十分に低い数値またはパラメータを使用してxargs
複数の呼び出しを生成できます。rsh
リモートとローカルの制限が同じであると仮定します。
xargs --delimiter='\n' rsh /path/to/script.sh <lists.txt
答え2
rsh
単一のリモートシェルを使用してプロセス全体を実行できます。
tr '\012' '\0' < "$destbang1" |
rsh vnc.remotesite du -sL --files0-from=- |
awk '{sum += $1} END {print sum}'
これを行うには、du
コマンドがこの--files0-from
オプションを理解し、ファイル内のすべてのファイル名に$deskbang1
改行を含めないでください。