Linux

Cron 作業生成 crontab.txt:未找到

  • July 23, 2017

試圖找出腳本在 Cron 中無法正常執行的原因。

設置一個 shell 以每分鐘呼叫一個 *.py 文件,其中包含以下內容(刪除了打開和關閉 # 行):

* * * * * python /root/job.sh 

job.sh 執行一個 *.py 文件,該文件檢查 I2C 溫度模組並將結果發送到 Ubidots。它手動工作正常。嘗試重新啟動 Cron(啟動、啟用和重新啟動)和一些其他變體,例如將使用者名和完整路徑添加到 job.sh。

這是腳本:

   #!/usr/bin/env python 
   python /root/temperature-monitor/main.py

該文件具有以下屬性(也嘗試過 chmod a+x、u+x、755、666 等):

-rwx--x--x 1 root root 62 Jul 21 15:07 job.sh

檢查 logread 表明 cron 它正在執行:

Fri Jul 21 15:38:00 2017 cron.info crond[3464]: USER root pid 3491 cmd /root/job.sh

創建了一個日誌文件並將輸出定向到它,其中包含以下內容:

* * * * * python /root/job.sh >/root/test1.log 2>&1

文件中的輸出包含以下內容:

-ash: crontab.txt: not found

但是 crontab.txt 在 /etc/crontabs 中作為根(文件名)列出,其中列出了作業。

關於下一步嘗試什麼的任何想法?只是不要讓腳本在啟動後無限循環執行。

從 crontab 您正在呼叫 python 來執行您的 shell 腳本(這不是 python 腳本)。將 python 更改為 sh(或 ash 或 bash),我認為您會發現它會更好。

您無需python輸入crontab. 這是一個 shell 腳本,python 是從腳本內部執行的。由於腳本是可執行的並且有一個 shebang 行,因此您可以將腳本本身作為命令執行。

* * * * * /root/job.sh

引用自:https://unix.stackexchange.com/questions/381316