close

今天想要在 Mac 上設定排程執行任務

使用 crontab 一直無法順利完成

後來就把 Error Message 印出來看

方法是在 crontab 後面加上要輸出的檔案還有"2>&1",如下:

0 0 * * * fix_invalid_photos.sh >> fixlog.txt 2>&1

 

查看 fixlog.txt 之後

發現 python 執行的時候報錯誤

[Error1] Operation not permitted

截圖 2020-04-06 下午6.58.57

 

看到這個 msg 的第一個想法就是

確認 sh、py 的執行權限

截圖 2020-04-06 下午6.59.06

發現沒 x 權限

用指令來開啟,777部份可依情況調整

chmod 777 fix_failed_photo.py

 

不過權限全開之後不論有沒有在指令中使用 sudo

都還是會遇到同樣的問題

所以我又找到了另一個原因

那就是 cron 沒有取用磁碟的權限

我們自已嘗試 sh 的時候,執行者是我們自己的帳戶

但 cron 跑 sh 的時候,確是沒有執行權限的

導致這個問題的發生

 

那該如何設定呢?

我們可以到 Mac 的系統偏好設定中 >> 安全性與隱私權 >> 完全取用磁碟

截圖 2020-04-07 上午11.03.22

解開鎖頭後,按下 + 鈕

選擇 cron 程式即可給予權限

cron 的位置在 /usr/sbin/cron

可以按 command+shift+G 來開啟輸入框

截圖 2020-04-07 上午11.04.57

 

做完這件事之後,cron 就可以正常讀取 py 檔囉

END

 

 

資料來源:

https://blog.bejarano.io/fixing-cron-jobs-in-mojave/

 

 

 


arrow
arrow

    顏澤偉 發表在 痞客邦 留言(0) 人氣()