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:

Но, кажется, если я применяю скрипт только к одному файлу, то все в порядке (т.е. изменяю его 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можно также сделать эту часть, какой из них быстрее или предпочтительнее.

Связанный контент