ソースサーバーから別のサーバーに複数のファイルを scp または rsync する

ソースサーバーから別のサーバーに複数のファイルを scp または rsync する

nfsはサーバー タイプであるためwin、 を含めることはできません:。ソース サーバーから別のサーバーのディレクトリに複数のファイルをコピーしnfs、同時に名前を変更したいと考えています。

スクリプトは次のようになります。

#!/bin/bash

in_files="node1:~/experiment/wrfout_d01_2012-12-01*"
###########################################################
# the files look like wrfout_d01_2012-12-01_00:00:00
# wrfout_d01_2012-12-01_06:00:00
# wrfout_d01_2012-12-01_12:00:00
# wrfout_d01_2012-12-01_18:00:00
###################################
for fn in $in_files;do
  echo $fn
  newfn=$(basename "$fn")
  echo 'apply basename :'
  echo $newfn
  scp -r "$fn"  "./${newfn//:/_}"
  echo 'next:'
done

このスクリプトを実行すると、

node1:~/experiment/wrfout_d01_2012-12-01*
apply basename :
wrfout_d01_2012-12-01_12_00_00
./wrfout_d01_2012-12-01*: File name too long
./wrfout_d01_2012-12-01*: File name too long
./wrfout_d01_2012-12-01*: File name too long
./wrfout_d01_2012-12-01*: File name too long
next:

ただし、スクリプトを 1 つのファイルのみに適用する場合は問題ないようです (つまり、in_files特定のファイルに変更します)。次に例を示します。

node1:~/experiment/wrfout_d01_2012-12-01_00:00:00
apply basename :
wrfout_d01_2012-12-01_00:00:00
wrfout_d01_2012-12-01_00:00:00        100%   71MB  70.5MB/s   00:00    
next:

1.複数のファイルで動作させるにはどうすればよいですか?

2.ところで、rsyncこの部分もできるようですが、どちらが速いか、または好ましいでしょうか。

関連情報