이것은 내 스크립트입니다.
[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
(스크립트의 마지막 줄이 되도록) 됩니다 .