crontab을 통해 크롤링 배치를 걸어두려 했으나, 콘솔에서는 잘만 수행되던 것이 crontab으로 등록하면 제대로 수행되지 않는 현상이 발견되었습니다.
이렇게 제대로수행되지 않은 배치는 자꾸 메일을 낳고...
그래서 이 메일을 확인해보았습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | $ sudo tail -n 50 /var/spool/mail/root From root@localhost.localdomain Sun Jan 28 22:56:03 2018 Return-Path: <root@localhost.localdomain> X-Original-To: root Delivered-To: root@localhost.localdomain Received: by localhost.localdomain (Postfix, from userid 0) id EF2D0617AAA7; Sun, 28 Jan 2018 22:56:02 +0900 (KST) From: "(Cron Daemon)" <root@localhost.localdomain> To: root@localhost.localdomain Subject: Cron <root@localhost> /home/kimgn/pythonstudy/kimgn_test/kimgn_bitcoin/get_bitcoin.py > /home/kimgn/log/get_bitcoin.log Content-Type: text/plain; charset=UTF-8 Auto-Submitted: auto-generated Precedence: bulk X-Cron-Env: <XDG_SESSION_ID=1640> X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/0> X-Cron-Env: <LANG=ko_KR.UTF-8> X-Cron-Env: <SHELL=/bin/bash> X-Cron-Env: <PATH=/sbin:/bin:/usr/sbin:/usr/bin> X-Cron-Env: <MAILTO=root> X-Cron-Env: <HOME=/root> X-Cron-Env: <LOGNAME=root> X-Cron-Env: <USER=root> Message-Id: <20180128135602.EF2D0617AAA7@localhost.localdomain> Date: Sun, 28 Jan 2018 22:56:02 +0900 (KST) Traceback (most recent call last): File "/home/kimgn/pythonstudy/kimgn_test/kimgn_bitcoin/get_bitcoin.py", line 12, in <module> django.setup() File "/home/kimgn/anaconda3/lib/python3.6/site-packages/django/__init__.py", line 19, in setup configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) File "/home/kimgn/anaconda3/lib/python3.6/site-packages/django/conf/__init__.py", line 56, in __getattr__ self._setup(name) File "/home/kimgn/anaconda3/lib/python3.6/site-packages/django/conf/__init__.py", line 43, in _setup self._wrapped = Settings(settings_module) File "/home/kimgn/anaconda3/lib/python3.6/site-packages/django/conf/__init__.py", line 106, in __init__ mod = importlib.import_module(self.SETTINGS_MODULE) File "/home/kimgn/anaconda3/lib/python3.6/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 978, in _gcd_import File "<frozen importlib._bootstrap>", line 961, in _find_and_load File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 655, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 678, in exec_module File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed File "/home/kimgn/pythonstudy/kimgn_test/kimgn_bitcoin/kimgn_bitcoin/settings.py", line 14, in <module> import MySQLdb File "/home/kimgn/anaconda3/lib/python3.6/site-packages/MySQLdb/__init__.py", line 19, in <module> import _mysql ImportError: libmysqlclient.so.20: cannot open shared object file: No such file or directory | cs |
확인해보니 이전 MySQL 모듈 로딩시 발생했던 에러임을 확인할 수있었습니다..
이 상황을 타개하기 위해서 crontab에도 bashrc에 등록했던 path 지정을 동일하게 해주었더니 해당 현상은 해결되었습니다.
1 2 3 4 5 | $ cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root LD_LIBRARY_PATH="/mysql/lib/:$LD_LIBRARY_PATH" | cs |
이상 간단하지만 상당히 많은 삽질(..) 을 하게했던 리눅스 관련 크론탭 설정입니다.