手元で動くスクリプトがcronで動かない時にやったこと

公開日:2017-06-04 更新日:2020-10-02

Linux Python Shell script Slack

t f B! P L

エラー

$ cat /var/log/cron.log
(CRON) info (No MTA installed, discarding output)

MTA入れる

# apt-get install postfix

エラーは無くなったが、実行されない

$ cat /var/log/cron.log
CRON[22130]: (yoshi) CMD (bash ~/execution.sh)

エラーログが出るようにする

$ crontab -l
15 21 * * * bash ~/execution.sh > error.txt 2>&1

スクリプトで実行するpythonファイルが問題のよう

$ cat error.txt
File "~/slack_post.py", line 18
SyntaxError: Non-ASCII character '\xe6' in file ~/slack_post.py on line 18, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

pythonファイルに以下入れる

# coding:utf-8

モジュールが入っていないとなっている(手で実行するとできるので入っている)

$ cat error.txt
~/execution.sh: line 4: pyenv: command not found
Traceback (most recent call last):
File "~/slack_post.py", line 4, in
from slackclient import SlackClient
ImportError: No module named slackclient

crontabにpathを通して解決した

PATH=~/.pyenv/shims:~/.pyenv/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

About me

ゆかき(♀)

アラサー駆け出しインフラエンジニア
ど文系営業からSEへ転身し日々奮闘している人

一児の母

#AP応用情報 #HTML5Lv1 #第2種電気工事士 #DCP(Data Center Practitioner) #LPIC Lv2 #VCP6.5 #CCNP #Oracle Bronze #HSKLv5 #TOEIC860

Line stamp

僭越ながら販売中

Green cat & Orange cat

Amazon