scp ou rsync vários arquivos do servidor de origem para outros servidores

scp ou rsync vários arquivos do servidor de origem para outros servidores

Como my nfsé um wintipo de servidor, ele não pode conter arquivos :. Quero copiar vários arquivos do servidor de origem para o nfsdiretório de outro servidor e renomeá-los ao mesmo tempo.

O script se parece com:

#!/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

Depois de executar este script, ele reporta

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:

Mas parece que se eu aplicar o script a apenas um arquivo, tudo bem (ou seja, alterar in_filespara um determinado arquivo), por exemplo:

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.Então, como devo fazer para permitir que funcione com vários arquivos?

2.A propósito parece que rsynctambém dá para fazer essa parte, qual é mais rápido ou preferido.

informação relacionada