Linux
Cron 作業生成 crontab.txt:未找到
試圖找出腳本在 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