2010-04-21 3 views
1

공유 웹 호스트에서 실행되는 bash 스크립트가 있습니다. 우리의 mysql 데이터베이스를 덤프하고 출력 파일을 압축합니다. 때로는 mysqldump 프로세스가 죽어 버려 불완전한 SQL 파일이 압축되어 여전히 압축됩니다. 살인에 '통지'하도록 스크립트를 만들려면 어떻게해야합니까? 그리고 살인이 발생하면 출력 파일을 삭제하십시오.프로세스가 종료되었습니다 - 출력 파일을 삭제 하시겠습니까?


편집 : 이런 일이 발생

/home/user/backup_script.bash: line 17: 12611 Killed      nice -19 mysqldump -uuser -ppassword -h database.hostname.com --skip-opt --all --complete-insert --add-drop-table database_name > ~/file/system/path/filename.sql 

그래서 때, 내가 원하는 : 여기 내 스크립트의 라인은

nice -19 mysqldump -uuser -ppassword -h database.hostname.com --skip-opt --all --complete-insert --add-drop-table database_name > ~/file/system/path/filename.sql 

그리고 여기가 내 친구 크론에서 기회에 을 무엇을 얻을입니다 파일 이름 .sql을 삭제하는 것입니다. 왜냐하면 그것은 몇 가지 삽입이있을 것이기 때문입니다. 나는 bash에서 명령의 출력 상태를 true 또는 false로 캡처 할 수있는 방법을 알고 있습니다. 그런 다음 false이면 뭔가를하십시오.

+1

이것은 프로그래밍 질문은, 아마 stackoverflow.com로 마이그레이션됩니다. 계정을 만들어 슈퍼 유저 계정에 연결하면 이동 한 후 질문의 소유권을 얻을 수 있습니다. 편집 : 사람들이 쉽게 대답 할 수 있도록 스크립트의 소스 코드를 포함하도록 게시물을 편집해야합니다. – marcusw

답변

2

= 0 :!

if ! mysqldump ...;then 
    rm ... 
fi 
-1

ps 또는 pgrep을 사용하여 프로세스가 이름을 기반으로 실행 중인지 확인할 수 있습니다. 또는 SQL 파일에서 lsof을 사용하여 프로세스가 파일에 액세스하고 있는지 확인할 수 있습니다. 그러나 프로세스가 정상적으로 완료되면 해당 "열린"연결은 더 이상 존재하지 않습니다. mysqldump는이이 종료 코드를가집니다 살해됩니다 경우

+0

나는 이것을 수동으로하고 싶지 않다. 스크립트가이 작업을 수행하기를 원합니다. – user151841

+0

@ user151841 : 스크립트가 내가 설명한 것을 수행 할 수있는 이유가 없습니다. –

+0

오? 말하라! :) – user151841

관련 문제