脚本中的 rm -f

脚本中的 rm -f

这是我的脚本:

[root@hostname ~]# cat ontape.sh
#!/bin/bash
#

sshpass -p 'PASSWORD' ssh root@hostname mkdir -p /home/mybackup/ontape/$(date +%Y-%m-%d)

sshpass -p 'PASSWORD' ssh root@hostname mkdir -p /mybackup/ontape_tmp_backup/$(date +%Y-%m-%d)

for server in $(cat servers.txt)

do

 sshpass -p 'PASSWORD' scp /dbbackup/backupdb/ontape/fullsize/* $server/$(date +%Y-%m-%d)"

rm -f /dbbackup/backupdb/ontape/fullsize/* 

done

我遇到的问题是,当它运行时,它仅复制到一台服务器,因为它rm -f在完成后立即执行。有没有办法或者如何在其中添加等待,以便在删除文件之前需要时间复制到两台服务器?

答案1

只需将rm -f线放在循环之外即可。

答案2

将 移动rm -f到该行之后done(以便它是脚本的最后一行),这样当循环完成并且文件已复制到所有服务器时目录将被清空。

相关内容