[Django] Cron(Ubuntu)での設定方法

Linuxでcrontabを使うには下記のコマンドが定番です。Ubuntuの場合、どのテキストエディッタを使うのか選択するようになっています。viが無い(泣)

crontab-eの実行

$ crontab -e
no crontab for yu - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vi

viを使うようにするには、 crontab -e の前に EDITOR=vi を付けて実行します。

$ EDITOR=vi crontab -e

Pythonのパスを調べる

Djangoプロジェクトを実行しているPythonのパスは以下でわかります。現在アクティブなPythonインタープリタの絶対パスが表示されます。

python -c "import sys; print(sys.executable)"

「/usr/bin/python」と出力されました。こちらは使っている環境によります。

Cronの記載

*/2 * * * * cd your_project_directory && your_virtualenv_path/bin/python manage.py sample_program >> /var/log/sample_program.log 2>&1

cd your_project_directoryはDjangoのプロジェクトのPath

your_virtualenv_path/bin/python に上記で調べた Pythonのpath を設定します。



Author: webmaster