如何使用 shell 脚本(ksh)在远程服务器中查找当前日期的文件并使用 rcp 将这些文件复制到本地服务器?

如何使用 shell 脚本(ksh)在远程服务器中查找当前日期的文件并使用 rcp 将这些文件复制到本地服务器?

我有两台服务器: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

相关内容