두 개의 서버가 있습니다: 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