mysqldump가 상태를 반환합니까?


14

mysqldump 유틸리티를 사용하여 mysql db를 백업하는 스크립트를 작성 중입니다. 이 스크립트를 쉘 "sh"에 작성하고 있습니다. 스크립트에서 mysqldump의 출력 상태를 캡처하고 싶습니다 (예 : mysqldump 명령이 실패했거나 성공한 경우). 스크립트가 성공했는지 여부를보고 할 수 있습니다.

  • mysqldump가 출력 상태를 반환합니까?

  • 누군가이 작업을 수행하는 방법에 대한 지침을 알려주시겠습니까?


파일이 생성되었고 마지막 줄에 다음과 같은 내용이 포함되어 있는지 확인할 수 있습니다 -- Dump completed on .... 문제가있는 경우에는 그렇지 않습니다.
Ewan Heming

쉘 스크립트를 통해 덤프를 작성 중이므로 아이디어 덤프가 올바르게 작성되었거나 일부 상태를 거치지 않고 싶습니다.
krunal shah

답변:


14

mysqldump가 반환

0 for Success
1 for Warning
2 for Not Found

또한 stderr에 확장 오류 메시지를 인쇄합니다.

mysqldump: Got error: 1049: Unknown database 'dbname' when selecting the database

다음과 같이 반환 값을 검사 할 수 있습니다

mysqldump -u DBuser -pDBpassword database >database.sql 2>database.err 
if [ "$?" -eq 0 ]
then
    echo "Success"
else
    echo "Mysqldump encountered a problem look in database.err for information"
fi

실패 성공 메시지를 이메일로 반환 할 수 없습니까? 도와주세요 ...
sqlchild

1

덤프 완료 후 $ 확인? 쉘 변수. 그것이 0이라면-모든 것이 잘되었습니다. 그렇지 않으면-오류입니다.

# mysqldump -u aaa -d msf>/dev/null
mysqldump: Got error: 1045: Access denied for user 'aaa'@'localhost' (using password: YES) when trying to connect
# echo $?
2
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.