Winodows 1p Pro (64bit)
Vagrant 2.2.14
Ubuntu 18.04
Python 3.7.3
Pythonの勉強で、Cronを使って.pyファイルを自動実行をしました。
.pyファイルを手動で動かすとそのコードは正常に動作するのですが、Cronだと動作しません。
同じディレトリにcsvファイルが出力されません。
app.pyファイルとして以下のコードを書きました。
import datetime import pandas as pd dt_now = str(datetime.datetime.now().strftime('%Y%m%d-%H%M%S')) df = pd.DataFrame( [[dt_now, "Kinocode", "Hello cron"]], columns = ['datetime', 'name', 'greet']) df.to_csv('/home/vagrant/python-cron/test_'+dt_now+'.csv') print(dt_now, 'Hello world from cron')
Cron -eでcronを以下のように設定しました。
# (分) (時) (日) (月) (曜日) (実行するコマンド) */1 * * * * bash /home/vagrant/python-cron/app.py
less /var/log/syslog | grep CRONコマンドを実行して
動作状況を確認しました。
Jan 31 12:52:01 vagrant CRON[21567]: (root) CMD (bash /home/vagrant/python-cron/app.py) Jan 31 12:53:01 vagrant CRON[21589]: (root) CMD (bash /home/vagrant/python-cron/app.py) Jan 31 12:54:01 vagrant CRON[21596]: (root) CMD (bash /home/vagrant/python-cron/app.py) Jan 31 12:55:01 vagrant CRON[21603]: (root) CMD (bash /home/vagrant/python-cron/app.py) Jan 31 12:56:01 vagrant CRON[21611]: (root) CMD (bash /home/vagrant/python-cron/app.py) Jan 31 12:57:01 vagrant CRON[21618]: (root) CMD (bash /home/vagrant/python-cron/app.py) Jan 31 12:58:01 vagrant CRON[21626]: (root) CMD (bash /home/vagrant/python-cron/app.py) Jan 31 12:59:01 vagrant CRON[21633]: (root) CMD (bash /home/vagrant/python-cron/app.py) Jan 31 13:00:01 vagrant CRON[21643]: (root) CMD (bash /home/vagrant/python-cron/app.py) Jan 31 13:01:01 vagrant CRON[21650]: (root) CMD (bash /home/vagrant/python-cron/app.py) Jan 31 13:02:01 vagrant CRON[21657]: (root) CMD (bash /home/vagrant/python-cron/app.py) Jan 31 13:03:01 vagrant CRON[21666]: (root) CMD (bash /home/vagrant/python-cron/app.py) Jan 31 13:04:01 vagrant CRON[21673]: (root) CMD (bash /home/vagrant/python-cron/app.py)
エラーもなく動作しています。
You have new mail in /var/mail/root
とメッセージが出ているので
catで確認しました。
Date: Sun, 31 Jan 2021 13:08:01 +0000 (UTC) /home/vagrant/python-cron/app.py: line 1: import: command not found /home/vagrant/python-cron/app.py: line 2: import: command not found /home/vagrant/python-cron/app.py: line 4: syntax error near unexpected token `(' /home/vagrant/python-cron/app.py: line 4: `dt_now = str(datetime.datetime.now().strftime('%Y%m%d-%H%M%S'))'
というエラーが出ています。
手動ではエラーなくファイルが出力されます。
Cronの設定が間違っているのでしょうか。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/31 17:20 編集
2021/01/31 23:32