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 -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


이상 간단하지만 상당히 많은 삽질(..) 을 하게했던 리눅스 관련 크론탭 설정입니다.

+ Recent posts