쉘 스크립트(ksh)를 사용하여 원격 서버에서 현재 날짜가 있는 파일을 찾고 rcp를 사용하여 해당 파일을 로컬 서버에 복사하려면 어떻게 해야 합니까?

쉘 스크립트(ksh)를 사용하여 원격 서버에서 현재 날짜가 있는 파일을 찾고 rcp를 사용하여 해당 파일을 로컬 서버에 복사하려면 어떻게 해야 합니까?

두 개의 서버가 있습니다: 1.EOS(Linux RHEL 4) 및 2.domain1(Solaris 10)

EOS에서는 ftp rcp scp가 차단됩니다.

/user/orac/monthly/EOS에는 해당 경로에 Oracle 데이터베이스의 일부 백업 파일이 저장되어 있습니다. 내 백업은 오후 9시에 종료됩니다. 매일 3개의 백업 파일이 생성됩니다. 이 세 파일을 내 domain1 서버에 복사하고 싶습니다. 다음 명령을 사용하여 EOS에서 domain1로 수동으로 복사했습니다.

rcp -p EOS:/user/orac/monthly/daily_backup_ORAC_edshhyjjak_3445_1 .

그러나 특정 파일의 경우 더 쉽습니다. 하지만 현재 날짜의 파일을 찾아 로컬 서버에 복사하려면 어떻게 해야 합니까?

파일은 이렇습니다

-rw-r--r-- 1 oracle dba 9835748338 Mar 18 20:40  daily_backup_ORAC_e6rvgtgt_3445_1
-rw-r--r-- 1 oracle dba   54546677 Mar 18 20:40  daily_backup_ORAC_e7rvfght_3446_1
-rw-r--r-- 1 oracle dba 5454555666 Mar 18 20:40  daily_backup_ORAC_e8rvfdhj_3447_1

오늘 날짜의 세 파일을 domain1:/database/backup_eos/해당 경로 에 복사하세요.

알로스가 시도했다

find /user/orac/monthly/ -name daily_backup_ORAC_*' -mtime -exec rcp -p "{}" domain1:/database/backup_eos/ \;

하지만 EOS에서는 rcp가 차단되어 오류가 발생합니다! domain1에서 이 명령을 실행해야 하며 /user/orac/monthly/해당 경로에서 EOS의 현재 날짜 파일을 찾아 domain1 /database/backup_eos/경로에 복사합니다.

답변1

EOS에서 백업 실행이 끝나면

find /user/orac/monthly/ -name 'daily_backup_ORAC_*' -mtime -1 -print > /var/tmp/todays_backup.txt

도메인 1에서 수행

rcp EOS:/var/tmp/todays_backup.txt /var/tmp
for f in $(< /var/tmp/todays_backup.txt)
do
    rcp -p EOS:$f /database/backup_eos/
done

이런 식으로 찾기는 로컬에서 수행되며 domain2는 목록과 파일만 가져오면 됩니다.

$(< )지원되지 않는 경우 사용

 while read f
 do
    /var/tmp/todays_backup.txt
 done < /var/tmp/todays_backup.txt

관련 정보