macでcronを動かしたいのですが
crontab -l で確認すると
*/1 * * * * /Users/XXXXX/.pyenv/shims/python ~/python/test.py
と入っているのですが、動かず。
test.pyには
print("hello")
とのみ記載しています。
ターミナルを開くたびにmailが来るので内容を見ると
X-Original-To: XXXXX Delivered-To: XXXXX@XXXXX.local From: XXXXX@XXXXX.local (Cron Daemon) To: XXXXX@XXXXX.local Subject: Cron <XXXXX@XXXXX> ~/python/test.py X-Cron-Env: <SHELL=/bin/sh> X-Cron-Env: <PATH=/usr/bin:/bin> X-Cron-Env: <LOGNAME=XXXXX> X-Cron-Env: <USER=XXXXX> Date: Thu, 11 Mar 2021 17:58:01 +0900 (JST) /Users/XXXXX/python/test.py: line 1: syntax error near unexpected token `"hello"' /Users/XXXXX/python/test.py: line 1: `print("hello")'
色々調べたのですが、理由が分からず、、、どなたか教えて下さい。
個人情報部分だけXXXXXとしています。
端末から、
/Users/XXXXX/.pyenv/shims/python ~/python/test.py
と打って動きますか?
はい、動きます。正常にターミナルに hello を出力されます。
このメールは、呼び出したコマンドが出力した内容を通知するものです。内容はエラーメッセージです。
そして、このエラーメッセージは、このtest.py が pythonでなくてshell(bashやzsh)で実行されていることを示しています。
crontab のエントリをもう一度確認してください。
「動いた」と判断するのはどういう状況を想定されていますか? もしかして、画面上にターミナルが自動的に開いて表示されると思ってらっしゃいますか?
printで質問したのでわかりにくかったのかもしれません。申し訳ございません。
test.pyの内容を
```
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https:google.com')
```
に変更したのですが、やはり
```
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME= XXXXX >
X-Cron-Env: <USER= XXXXX >
Date: Fri, 12 Mar 2021 10:59:00 +0900 (JST)
from: can't read /var/mail/selenium
/Users/XXXXX/python/test.py: line 2: syntax error near unexpected token `('
/Users/XXXXX/python/test.py: line 2: `driver = webdriver.Chrome()'
```
というmailが届き、実行されません。なぜでしょうか・・・。
質問文に書かれている crontab -l の結果は本当に現在のものでしょうか? メールのSubjectと本文からすると、違うのではないかと思えます。
crontab -l
で表示されるのは
*/1 * * * * /Users/takuya/.pyenv/shims/python ~/python/test.py
です。
回答3件
あなたの回答
tips
プレビュー