Shell-Script
cron呼叫shell腳本呼叫python腳本RP_和3R磷一世3RPi3
我正在嘗試使用 Cron 重複執行 python 腳本。我已經編寫了一個呼叫那個/這些 python 腳本的 shell 腳本。我已將 shell 腳本製作為執行檔,並且在終端和只需點擊執行即可完美執行。
我已更改 Crowntab 以在特定的時間間隔(通常在一兩分鐘內)呼叫我的 shell 腳本,以查看它是否正常工作。但是,似乎我的腳本沒有正確執行。
我的 python 腳本很長,它也有它呼叫的本地 python 函式。儘管如此,我還是創建了一個簡短的 python 程序和一個 shell 腳本來呼叫它,目的是確定 cron 是否工作,並且似乎它被按預期呼叫。
為什麼我的 python/shell 腳本沒有被正確呼叫以執行?如果我呼叫 shell 腳本,是否還需要包含路徑以供 cron 看到?
我的 crontab:
20 13 * * * /my/full/path/to/the/shell_script.sh
我的外殼腳本/文件:
#!/bin/bash cd /full/path/to/the/python_script_folder sudo python3 python_script.py argument
RPi3 /var/log/syslog:
Jan 23 20:13:01 raspberrypi cron[477]: (pi) RELOAD (crontabs/pi) Jan 23 20:13:01 raspberrypi CRON[3851]: (root) CMD (/etc/myDevices/crontab.sh) Jan 23 20:13:01 raspberrypi CRON[3854]: (pi) CMD (/my/full/path/to/the/shell_script.sh)
任何幫助表示讚賞。如果您需要任何其他資訊,請告訴我。謝謝你。
正如@thrig 提到的 - sudo 可能要求輸入密碼,
bash -x
並將提供有關執行內容和輸出內容的附加資訊。首先,重定向 cron 輸出是一個好習慣,例如20 13 * * * /my/full/path/to/the/shell_script.sh > ${HOME}/cron.log 2>&1
這將為您提供記錄在文件中的腳本的輸出。
我會:
- 將條目放在需要執行它的使用者的 crontab 中。
- 刪除包裝器並將命令設置為’python3 /path/to/script.py args'