scp 或 rsync 將多個檔案從來源伺服器同步到另一台伺服器

scp 或 rsync 將多個檔案從來源伺服器同步到另一台伺服器

由於 mynfswin一種伺服器,因此它不能包含:.我想將多個檔案從來源伺服器複製到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:

但似乎如果我只將腳本應用於一個文件,就可以了,(即更改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這部分似乎也可以做,哪一個更快或更好。

相關內容