ロリポップのレンタルサーバでpythonスクリプトを実行しようとして、sshから直接コマンドを実行すると動くのにcronから自動実行するとうまく動かないことがありました。
which python
コマンドをそれぞれの環境で実行したところ、以下のように使用しているpythonコマンドが異なっていました
# sshから対話的に実行した時の出力
/usr/local/bin/python
# cronから実行した時の出力
/usr/bin/python
それぞれのpythonコマンドのバージョンを確認すると、python2系と3系が異なっていることがわかりました。
$ /usr/local/bin/python --version
Python 3.4.1
$ /usr/bin/python --version
Python 2.6.6
このため、cronから実行する場合に、試しにpythonコマンドをフルパスで指定すると、想定したversionのpythonが動作するようになり、問題が解決しました。
#!/bin/bash
#
# cron script
#
/usr/local/bin/python foo.py
こちらもおススメ
2 thoughts on “ロリポップのレンタルサーバでpythonスクリプトをcron実行できないときに確認すること”