我有两台服务器:1.EOS(Linux RHEL 4) 和 2.domain1(Solaris 10)
在EOS中,ftp rcp scp被阻止。
/user/orac/monthly/
在EOS中,我在路径中保存了一些oracle数据库的备份文件。我的备份在晚上 9 点结束。每天生成三个备份文件。我想将这三个文件复制到我的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/ \;
但它给出了错误,因为 rcp 在 EOS 中被阻止!我必须在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
这样,find 就在本地完成,domain2 只需要获取列表和获取文件。
如果$(< )
不支持使用
while read f
do
/var/tmp/todays_backup.txt
done < /var/tmp/todays_backup.txt