안녕하세요. 아래와 같은 쉘스크립트로 mysql 에 insert 후 성공 or 실패 결과를 로그로 남기고 싶은데요,
실패가 될때는 (아래 참조) 문구가 출력이 되나 성공일 때는 아무것도 안남아서 로그를 찍을수가 없습니다ㅠㅠ
실행결과를 변수에 넣어서 NULL 로 구분해보려 했으나 성공/실패 모두 명령어 자체가 실패는 아니라서 모두 NULL로 체크되네요..
어떻게 하면 성공/실패를 구분할 수 있을지 부디 고수님들의 고견을 여쭙습니다.
******* 쉘스크립트 ********
NOW=$(date "+%Y-%m-%d-%T")
echo "$NOW"
SQL_OUTPUT=$(exec mysql --login-path=aics-clear -N -e "
use AICS;
insert into AICS.TB_MAIL (MAIL_ID) values ('test09')")
if [ -z $SQL_OUTPUT ]
then
echo "success"
fi
********************************
=> 성공일 때 (test09 insert 시)
2019-12-12-10:25:19
ERROR 1062 (23000) at line 3: Duplicate entry 'test09' for key 'PRIMARY'
success
=> 실패일 때 (test10 insert 시)
2019-12-12-10:25:43
success
직접 재현은 못해봤는데 아래 링크에 보니 비슷한 질문이 있는것 같습니다. 참고하세요
https://stackoverflow.com/questions/47110330/how-do-i-check-that-a-mysql-query-was-successful-with-in-a-shell-script