簡體   English   中英

盡管腳本在手動運行時有效,但 Crontab 沒有在 macOS 中運行我的 python 腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM