[英]Crontab isn't running my python script in macOs although the script works when run manually
我的學校總是希望我們下載 pptx 和 docx 用於講座和實踐,我討厭我總是需要在閱讀完成后手動刪除它。 因此,我創建了一個腳本來丟棄文件夾中的任何內容,並希望 crontab 安排它每小時運行一次。
當我通過終端手動運行此代碼時,一切正常。
def remove_trash():
import os
dir_path = os.path.dirname(os.path.realpath(__file__))
filename = os.path.join(dir_path, "trash_script.py")
with open(filename, "r") as f:
_ = f.read()
os.system(f"rm -df {dir_path}/* && touch {filename}")
with open(filename, "w") as f:
f.write(_)
if __name__ == "__main__":
remove_trash()
但是當我在我的 crontab 中添加這個時,
0 * * * * python ~/Desktop/Projects/script/Trash/trash_script.py
我嘗試授予文件執行權限,但它仍然不會在每分鍾 0 時運行。
chmod +x trash_script.py
我建議先將您的腳本移動到 bash 腳本中,並添加一些日志以查找問題。 bash 腳本將如下所示:
trash.sh
cd ~/Desktop/Projects/script/Trash
python trash_script.py
更改腳本的執行權限
chmod +x trash.sh
將您的 cron 作業修改為如下所示:
0 * * * * sh <path_to_bash_script>/trash.sh >> ~/Desktop/Projects/script/Trash/trash.log 2>&1
這將有助於在每次腳本運行時獲得一些 output。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.