Develope/LINUX

[Linux] Cron 이 안될 때, 실행은 되는데 결과가 이상할 때, 실행도 안될 떄;

고로이 2017. 11. 16. 17:41
반응형

* 증상


mysql 쿼리 실행관련해서 쉘 스크립트는 잘 돌아가는데


crontab에 sh를 올렷더니 안되드라..





**********


1. 중간에 실행하는 스크립트 출력문으로 출력해봄 -> O


2. 실행을 로그로 찍음  echo "Table Name : $TNAME / DIR : $FDIR" >> $LOG_DIR/$TNAME.$START_DATE.log -> O


3. 경로 모두 절대경로로 변경 -> O



***********


sh실행은 잘되느넫 정말

cron에서만 안돌아간다;;




cron도 실행은되는데

결과가 null;;





원인은 간단하다


$ which mysql
/MARIA/mariadb/bin/mysql




일반적인 루트에 mysql이 없었기 때문...


* import_data.sh
/MARIA/mariadb/bin/mysql -u$USER -p$PW $DB --local-infile=1 -e "LOAD DATA LOCAL INFILE '$DATA_DIR/$TNAME/$FDIR/$FILE' INTO TABLE $TNAME CHARACTER SET UTF8 FIELDS TERMINATED BY '



이렇게 수정해씀


------------추가내용


결론부터 말하자면 환경변수 문제였다. 어떤계정에서 crontab작동하도록 명령하지않는 다.. 

그냥 시간되면 지 스스로 작동하기에 환경변수 따위가 없다.. 가져올 환경변수가 없으므로 작동하지 않는 건 당연하다.


crontab에서 환경변수를 설정해주면 이 문제는 간단히 해결된다.

crontab -e에서 


HELL=/bin/bash

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

출처 : https://www.conory.com/magazine/21351


반응형