2014-05-09 3 views
3

mysql dbs를 덤프하는 스크립트를 작성 했으므로 명령이 성공적으로 실행되었는지 확인해야합니다. $? db 서버에 연결 문제가 있더라도 항상 0을 제공하십시오. 성공적으로 연결 시간 초과, 잘못된 DBNAME, 잘못된 사용자 이름 및 암호 오류를 보여주는 어떤 생각이 내가 어떻게이에게 감사Bash Linux - mysql 명령이 성공적으로 실행되었는지 테스트

+0

mysql이 유효한 종료 상태를 제공하는 것으로 보이므로 코드를 알려주십시오 ... http://stackoverflow.com/questions/21369396/mysql-how-to-check-exit-status –

+0

mysqldump -u usr -ppwd db | gzip -c> db.sql.g echo $? # 테스트 종료 상태 –

답변

4

#!/bin/sh 
mysqldump -h 192.168.1.10 -u user -pPaSSwOrD dbname > filename.sql 
if [ "$?" -eq 0 ]; then 
    echo "Success" 
else 
    echo "Error" 
fi 

스크립트

을 할 수 있습니다. 그것은 단지 찍은 덤프의 무결성을 확인하지는 않지만 또 다른 이야기입니다.

+0

감사합니다 Shader, 문제는 내가 출력을 압축하기 위해 mysql 명령 뒤에 파이프를 사용하고 있습니다 'mysqldump -u usr -ppwd db | gzip -c> db.sql.gz '그래서 나는 $의 결과라고 생각합니까? 첫 번째 MySQL이 아닌 gzip 명령 상태와 관련이 있습니다. 그게 다야? –

+0

네, 맞습니다. 첫 번째 줄을'mysqldump -h 192.168.1.10 -u user -pPaSSwOrD dbname | gzip> filename.sql.gz', $? gzip 작업을 참조하고 있습니다. 작업을 더 쉽게하려면 두 가지로 작업을 나누십시오. 덤프를 만들고 (성공했는지 확인) 압축을 풀고 .gz로 압축합니다 (필요한 경우 확인). – Shader

+0

다른 해결책은 mysqldump 앞에'set -o pipefail'을 넣는 것입니다 ... | gzip> ... '. 이 경우 파이프 중 하나가 실패하면 오류가 반환됩니다. – Shader

관련 문제