web-dev-qa-db-ja.com

cronジョブを使用してpythonファイルを実行する方法

こんにちは私はpythonファイルをfile_example.pyとして作成しました

ファイルはsensex値を出力します

Linuxシステム上のファイルのパスが/Desktop/downloads/file_example.pyであるとします

通常、python file_example.pyのようなファイルを実行します

しかし、上記のパスにある2分ごとにpythonファイルを実行するようにcronジョブを設定したい

誰でもこれを行う方法を教えてください

編集済みコード

以下に示すように、コードを編集し、test.shという名前のbashスクリプトを作成しました

#!/bin/bash 
cd /Desktop/downloads/file_example.py
python file_example.py 2>log.txt 

上記のファイルを実行すると、次のエラーが表示されます。

sh-4.2$ python test.sh
  File "test.sh", line 3
    python test.py 2>log.txt 
              ^
SyntaxError: invalid syntax

UNIX OSを使用していると仮定すると、次のようになります。

コマンドを使用してcrontabファイルを編集します

crontab -e

以下のような行を追加します

*/2 * * * * /Desktop/downloads/file_example.py

これは、必要なスクリプトへのパスを使用するだけで他のスクリプトを実行するために使用できます。

*/2 * * * * /path/to/script/to/run.sh

タイミングの説明は以下のとおりです(数字の前にスターとスラッシュを追加して、nタイムステップごと、この場合は2分ごとに実行します)

* * * * * command to be executed
- - - - -
| | | | |
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)
52
olly_uk

Python-crontabモジュールを使用できます。

https://pypi.python.org/pypi/python-crontab

新しいcronジョブを作成するには、次のように簡単です。

from crontab import CronTab
#init cron
cron   = CronTab()

#add new cron job
job  = cron.new(command='/usr/bin/echo')

#job settings
job.hour.every(4)
28
Guray Celik