シナリオ: あるサーバーから別のサーバーに、それぞれ 30 から 35 MB の約 3000 個のファイルを転送する必要があります (両方のサーバーは IBM-AIX サーバーです)。これらのファイルは .gz 形式です。それらは、配布先で gunzip コマンドを使用して解凍されます。
私が現在行っている方法: それぞれ 500 ファイルの ftp スクリプトを含む .sh ファイルを作成しました。これらの .sh ファイルを実行すると、ファイルが宛先に転送されます。宛先では、到着したファイルの数をチェックし続け、100 個のファイルが到着したらすぐに、これらの 100 個のファイルに対して gunzip を実行し、次の 100 個のファイルに対して同じことを繰り返します。時間を節約するために、gunzip を 100 個のバッチで実行します。
考えていること: ファイルを宛先に ftp するコマンドまたはその他の方法を探しています。100 個のファイルが転送されるとすぐに、解凍が開始されますが、この解凍は残りの転送を一時停止するべきではありません。ファイル。
私が試したスクリプト:
ftp -n 192.168.0.22 << EOF
quote user username
quote pass password
cd /gzip_files/files
lcd /unzip_files/files
prompt n
bin
mget file_00028910*gz
! gunzip file_00028910*gz
mget file_00028911*gz
! gunzip file_00028911*gz
mget file_00028912*gz
! gunzip file_00028912*gz
mget file_00028913*gz
! gunzip file_00028913*gz
mget file_00028914*gz
! gunzip file_00028914*gz
bye
上記のコードの欠点は、
! gunzip file_00028910*gz
行が実行されている場合、次のバッチの ftp、つまり ( file_00028911*gz ) の ftp が一時停止されるため、多くの時間が無駄になり、帯域幅の使用率が失われます。!マークは、ftp プロンプト内でオペレーティング システム コマンドを実行するために使用されます。
私のシナリオを適切に説明したことを願っています。解決策があれば投稿を更新します。既に解決策がある場合は返信してください。
よろしくヤッシュ。