リモートネットワークから40kパスサイズを取得する

リモートネットワークから40kパスサイズを取得する

リモートサイトからサイズを取得するために必要なパスを含む約40,000行のファイルがあります(rshdu -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改行を含めないでください。

関連情報