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