나는 bash에서 MySQL 5.6.35에 대한 쿼리를 실행하려고하고있다. 값이 14보다 크거나 같으면 0을 종료해야한다. 예상했던 결과를 얻을 수있다. 하지만 종료하지 0Bash MySQL 쿼리
스크립트 :
: 대답~# ./check.sh
39
./check.sh: line 6: test: too many arguments
CRITICAL
UPDATE : 여기
#!/bin/bash query="SELECT count(*) FROM weekly WHERE date > DATE_SUB(NOW(), INTERVAL 1 WEEK)" mysql -u root -sN weekly_db -e "$query"; if test $query -ge 14 ; then echo "OK" exit 0 else echo "CRITICAL" exit 2 fi
실행 bash는 스크립트가 여기 16, 내가 codeforester의 도움이 감사에 대한 가서 어떻게
#!/bin/bash
query="SELECT count(*) FROM weekly WHERE date > DATE_SUB(NOW(), INTERVAL 1 WEEK)"
OUTPUT=$(mysql -u root sN weekly_db -e "$query";)
if ((OUTPUT >= 14)) ; then
echo "OK"
exit 0
else
echo "CRITICAL"
exit 2
fi
출력 : 인용 부호가 $query
이 test
혼란 많은 단어로 평가되므로
~# ./check.sh
OK
왜 것'$ query' 마술'-ge 14'을? 이것은 SQL 문자열입니다. – tadman
내가 뭘보고 있는지, 어쩌면 내가 4 행에 다른 변수를 설정해야합니다. – user2355518
참고로 'bash'는 실제로 MySQL에서 데이터를 가져올 수있는 최악의 방법입니다. 파이썬, 루비, 펄, Node.js, 네이티브 MySQL 드라이버를 사용할 수 있다면 당신은 훨씬 나아질 것입니다. 간단한 래퍼 스크립트를 작성하고 결과를 종료 상태 코드에 매핑하면 'bash'가이를 해석 할 수 있으므로 매우 쉽습니다. – tadman