- 8
- 이니스프리
- 조회 수 505
안녕하세요??
오라클 클라우드 프리 티어에서 2개의 인스턴스를 생성했는데요.
똑같이 타임존 설정 후에 sudo apt-get update 및 sudo apt-get upgrade를 하고
동일한 버전(20.7.)의 아나콘다를 설치하였는데요~
하나는 crontab이 잘 작동하는데 다른 하나는 안 되네요 ㅠㅠ
구글링하여 아래 글을 보고 조치를 했지만 해결되지 않는군요 ㅜㅜ
굳이 찜찜한 점이라면 service cron restart는 권한이 없어서 안 되고 sudo service cron restart를 했다는 점이구요~
또 하나는 crontab -e를 해서 먼저 작성한 크론을 shift + ins 했다는 점인데요 :)
구글링해보니 crontab에서 각 줄의 끝에 스페이스바를 넣지 않으면 실행이 안 되는 버그가 있다는 글이 있던데
테스트해보니 그 문제도 아니더군요 ㅠㅠ
이건 잘 작동하는 크론이구요~
이건 잘 작동하니 않는 크론이네요 ㅠㅠ
크론탭의 내용은 대단한게 없구요~
02 00 * * * /home/ubuntu/anaconda3/bin/python /home/ubuntu/파이썬파일.py
이런 것만 몇 개 설정했어요!
일단 경로의 문제는 아니라고 생각되는데요~
크론탭의 내용을 복붙하여 그냥 실행하면 잘 되거든요 ㅠㅠ
각 줄 끝에 >> out.txt 2>&1 을 붙여넣는 방식으로 테스트해보려고 했지만
아예 크론이 task 자체를 실행하지 않는 것 같아요 ㅠㅠㅠㅠㅠ
저같은 우분투 초보로서는 도저히 해결할 수 있는 방법이 없네요~ ㄷㄷ
고수님들의 조언 부탁드립니다!
감사합니다 ^-^
+) 조언을 위해 더 필요한 information이 있다면 편하게 말씀해주세요 :)
작성자
댓글 8
이번 여름에는 다들 바쁘셔서 여름휴가라도 다녀오셨는지 모르겠네요~
저도 그렇게 해결되면 좋겠다고 생각하고 싶지만...
크론탭을 생성하고 재시작한지 이틀이 넘었는데 동작을 안 하네요 ㅠㅠ
혹시 몰라서 sudo crontab -e로도 설정해봤는데 안 되더군요~
crontab -e와 sudo crontab -e가 별개로 작동하는 것이라면
sudo service crontab restart는 crontab -e를 재시작하는게 아닐 수도 있다는 생각이 드네요 ㅜㅜ
계속 고민해보고 안 되면 인스턴스를 재설치하는 방향으로 접근할게요~
그럼 비 조심하시고 항상 건겅하세요 :)
감사합니다!!
일단 두 서버 모두 완벽하게 같은 환경이었다고 한다면 좀 더 알아봐야할 문제이지만
우분투의 경우 root의 권한으로 시스템을 건드려야 하는 경우엔
crontab -e 로 편집하면 제대로 실행이 안될 수도 있습니다. (제가 파악하기론 reboot, poweroff 등과 같은 서비스에 큰 영향이 미칠 명령어가 있는 경우에 해당 됩니다.)
그럴 땐 /etc/crontab 파일을 직접 수정하시면 됩니다.
물론 직접 수정하지 말라고 되어있긴 한데, 직접 넣으면 잘 되는 경우가 종종있습니다.
에디터를 뭐를 쓰시는지 모르겠으나 저는 nano 를 즐겨사용하므로
nano /etc/crontab
으로 직접 수정해 주시고 반드시 주의할 점은 아래 빨간색 부분처럼 실행할 계정을 꼭 적어주셔야 합니다.
02 00 * * * root /home/ubuntu/anaconda3/bin/python /home/ubuntu/파이썬파일.py
두 VPS 모두 무료 티어로 동일한 우분투 버전으로 인스턴스를 생성한 후에
타임존 설정 -> apt-get update & upgrade -> 아나콘다 7월 버전 설치 -> 크론탭 설정 이런 순서로 했구요~
다른 설정은 전혀 건드린게 없거든요 ㅠㅠ
이 문제 때문에 구글링을 해보니 crontab 파일을 직접 수정하면 crontab이 제대로 실행되지 않는 경우가 있다고 하던데...
어차피 안 되는 상황이니 직접 수정을 해봐야겠네요~
말씀해주신 마지막 포인트를 잊지 않고 꼭 넣을게요!! ^^
바쁘신데 정말 감사합니다 :)
말씀해주신 방법으로 해보고 안 되면 아무래도 제 능력 밖의 일인 것 같아서 부득이 재설치해야겠네요 ㅠㅠ
그럼 마스터 님께서도 좋은 오후 되시고 항상 건강하세요!
+) 우분투 이미지 빌드가 동일한 것까지 확인을 했네요~
crontab debugging 하는 방법이 있습니다. 오래 돼서 잘 기억이 안나는데 syslog 쪽에 출력이 되었던것 같아요.
crontab debug 로 구글님께 물어보시면 됩니다.
https://stackoverflow.com/questions/4883069/debugging-crontab-jobs
PATH를 넣는 방법도 테스트해보았구요~
로그 자체에 아무런 흔적이 없는 것을 봐서는 crontab이 어디에선가 꼬인 것 같아요 ㅠㅠ
제 수준에서는 왜 이런 문제가 발생했는지 확인할 방법이 없네요 ㅜㅜ
그럼 내일 오후부터 또 비가 온다던데 비 조심하시고 굿밤 되세요 :)
다시 한 번 감사드립니다!!
crond 로그는 확인 하신거에요? crond 실행 할 때 로그가 찍여요. 그거 한번 보세요. 실행이 안됐으면 에러가 출력이 될거에요. 계속 로그 볼수 있게 빨리 돌게 해놓세요.
아래처럼 로그를 볼수 있어요
[root@user-crontesting-dvc-01 ~]# faketime '2019-10-17 07:59:50' /usr/sbin/crond -n -x sch
debug flags enabled: sch
[4841] cron started
log_it: (CRON 4841) INFO (Syslog will be used instead of sendmail.)
log_it: (CRON 4841) INFO (RANDOM_DELAY will be scaled with factor 34% if used.)
log_it: (CRON 4841) INFO (running with inotify support)
[4841] GMToff=0
log_it: (CRON 4841) INFO (@reboot jobs will be run at computer's startup.)
[4841] Target time=1571299200, sec-to-wait=11
user [root:0:0:...] cmd="/usr/libexec/myexc/crontesting.cron > /dev/null 2> &1"
[4841] Target time=1571299260, sec-to-wait=60
log_it: (root 4844) CMD (/usr/libexec/myexc/crontesting.cron > /dev/null 2> &1)
log_it: (root 4843) CMDOUT (/bin/bash: -c: line 0: syntax error near unexpected token `&')
log_it: (root 4843) CMDOUT (/bin/bash: -c: line 0: `/usr/libexec/myexc/crontesting.cron > /dev/null 2> &1')
$ cat /var/log/cron
이런 방식으로 확인하는 것을 말씀하시는거죠?
제가 이틀 전에 확인을 했었는데 마지막으로 다시 한 번 들어가서 볼게요~
사실 이젠 마음을 비우고 인스턴스를 재설치하려고 생각하고 있어서요 ㅠㅠ
감사합니다!!
그럼 날씨가 무덥고 습하지만 좋은 하루 되세요 :)