mac 定時去執行某shell腳本

方法1

進入根目錄
cd/
通過終端打開Finder的根目錄
open/
touch test.sh
vim test.sh
點擊esc鍵,然后輸:wq來保存退出

linux應該都有crontab,沒有的話可以安裝一下:
brew install vixie-cron
brew install crontabs:
vixie-cron軟件包是cron的主程序;
crontabs軟件包是用來安裝、卸裝、或列舉用來驅動 cron 守護進程的表格的程序。

方法2:

使用蘋果的Schedule jobs using launchd設置定時任務。需要寫一個plist文件,描述任務的動作、間隔的時間、日志輸出等參數。

我創建一個plist文件com.hanlingzhi.cron.meican.plist,大概內容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Disabled</key>
    <false/>
    <key>KeepAlive</key>
    <true/>
    <key>Label</key>
    <string>com.caoyujiao.crib.meican</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/php</string>
        <string>/Users/caoyujiao/Desktop/IQIYI/tvOS/my.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/Users/caoyujiao/Desktop/IQIYI/tvOS/stderr</string>
    <key>StandardOutPath</key>
    <string>/Users/caoyujiao/Desktop/IQIYI/tvOS/stdout</string>
    <key>StartCalendarInterval</key>
    <dict>
        <key>Hour</key>
        <integer>0</integer>
        <key>Minute</key>
        <integer>1</integer>
    </dict>
</dict>
</plist>

然后將plist文件放在/Users/hanlingzhi/Library/LaunchAgents,你的用戶目錄下,然后執行launchctl load plist就可以啟動了。

launchctl load -w com.caoyujiao.crib.meican.plist 加載
launchctl unload -w com.caoyujiao.crib.meican.plist 卸載

  • 加載后,終端文案會在stdout文件中顯示
  • 錯誤信息顯示在stderr文件里面

plist腳本存放路徑為/Library/LaunchDaemons或用戶目錄/Library/LaunchAgents,其區別是后一個路徑的腳本當用戶登陸系統后才會被執行,前一個只要系統啟動了,哪怕用戶不登陸系統也會被執行。

  • 系統定義了幾個位置來存放任務列表

  • ~/Library/LaunchAgents 由用戶自己定義的任務項

  • /Library/LaunchAgents 由管理員為用戶定義的任務項

  • /Library/LaunchDaemons 由管理員定義的守護進程任務項

  • /System/Library/LaunchAgents 由Mac OS X為用戶定義的任務項

  • /System/Library/LaunchDaemons 由Mac OS X定義的守護進程任務項

可以通過兩種方式來設置腳本的執行時間。一個是使用StartInterval,它指定腳本每間隔多長時間(單位:秒)執行一次;另外一個使用StartCalendarInterval,它可以指定腳本在多少分鐘、小時、天、星期幾、月時間上執行,類似如crontab的中的設置。

launchctl的命令使用大家看一下幫助文檔。

由于操作還是比較復雜,為了幫助快速執行,寫了個shell快速拷貝新的plist并完成服務重啟

總結一下

雖然plist的設置會復雜很多。但是當前在mac os還是傾向于推薦使用Plist的方法,crontab已不推薦使用。
兩者的區別:
1、plist可以設置到秒,而crontab只能到分鐘。

2、plist可以同時應用于Mac OS/Iphone。

3、plist對于MAC上系統交互的操作更支持(我就出現過用crontab設置,運行時出現execution error: 不允許用戶交互。 (-1713)的錯誤)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,565評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,115評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,577評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,514評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,234評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,621評論 1 326
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,641評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,822評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,380評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,128評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,319評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,879評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,548評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,970評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,229評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,048評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,285評論 2 376

推薦閱讀更多精彩內容

  • 創建定時任務主要就是為了每天固定運行一下腳本之類的。比如cocoapods倉庫每天總是有新的第三方庫提交,那么po...
    齊滇大圣閱讀 6,629評論 1 9
  • launchctl是一個統一的服務管理框架,可以啟動、停止和管理守護進程、應用程序、進程和腳本等。launchct...
    繁著閱讀 58,836評論 8 47
  • 摘要:今天做了個數據庫的備份腳本,順便系統得學習一下Linux下定時執行腳本的設置。Linux下的定時執行主要是使...
    暖夏未眠丶閱讀 14,145評論 0 2
  • Mac下添加定時任務 編寫任務腳本 把要執行的任務寫好 編寫任務描述文件 mac的任務描述文件是plist格式的。...
    Gundy_閱讀 5,932評論 0 2
  • 時間可以讓傷痕開除花朵 俄羅斯Ussuri烏蘇里灣的玻璃海灘,曾經是舊蘇聯傾倒處理廢棄啤酒瓶和瓷器的地方。但隨著時...
    夜涼如水wp閱讀 229評論 2 1