소스 서버에서 다른 서버로 여러 파일을 동기화하는 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:

그러나 스크립트를 하나의 파일에만 적용하면 작동하는 것 같습니다(예: 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이 부분도 이루어진 것 같은데, 어느 쪽이 더 빠르거나 더 좋은지.

관련 정보