2つのサーバーがあります:1.EOS(Linux RHEL 4)と2.domain1(Solaris 10)
EOS では、ftp rcp scp がブロックされます。
/user/orac/monthly/
EOSには、そのパスにOracleデータベースの一部のバックアップファイルが格納されています。私のバックアップは午後9時に終了します。毎日3つのバックアップファイルが作成されます。これら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
今日の日付の3つのファイルを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