背景
通過 crontab 定時運行 python 腳本來發送釘釘消息
https://www.cnblogs.com/poloyy/p/15565875.html
一開始的定時任務
*/1 * * * * python3 /Users/test.py
確定 Python 腳本是否可正常執行
命令行下敲
python3 /Users/test.py
發現是可以正常運行的
那爲什麼 crontab 不運行呢?來一步步解決!
OS X 的定時任務統統由 launchctl 來管理的,看看 cron 任務有沒有在裏面
# 定時任務統統由 launchctl 來管理的,看看 cron 任務有沒有在裏面 sudo launchctl list | grep cron # 有記錄。查看一下啓動項的配置 locate com.vix.cron # 創建一個database sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist # 查看 /etc/crontab 是否存在 ls -alF /etc/crontab # 創建該文件 sudo touch /etc/crontab
以爲搞定了!結果一分鐘後還是不行
驗證 crontab 是否可真正執行
# 每分鐘輸出當前時間到time.txt上. */1 * * * * /bin/date >> /User/time.txt
一分鐘後去看,發現是有文件的,證明 crontab 沒問題
關鍵點:絕對路徑
一開始寫的定時任務中,python3 是相對路徑,這是不對的,應該用絕對路徑
*/1 * * * * /usr/local/opt/python@3.9/bin/python3.9 /User/test.py
這樣就可以正常執行了!