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

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

myはサーバーなので、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この部分もなされたようだが、どちらがより速いかより良いか。

関連情報