新的版本的MacOS,官方已不建議用 crontab

cd ~/Library/LaunchAgents
vim net.alexchang.<YOUR_JOB>.plist

貼上以下的code再修改,下面的範例是每天(86400秒)執行一次,其他觸發條件建議看文件

<?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>](<http://www.apple.com/DTDs/PropertyList-1.0.dtd>)">
<plist version="1.0">
	<dict>
	<key>Label</key>
	<string>net.alexchang.<YOUR_JOB></string>
	<key>ProgramArguments</key>
	<array>
		<string>sh</string>
		<string>/Users/YOUR/PATH/TO/file.sh</string>
	</array>
	<key>StartInterval</key>
	<integer>86400</integer>
	</dict>
</plist>

編輯 shell file

#!bin/bash
YOUR_COMPLEX_COMMANDS

載入

launchctl load ~/Library/LaunchAgents/net.alexchang.<YOUR_JOB>.plist

launchctl start net.alexchang.<YOUR_JOB>

取消

launchctl unload ~/Library/LaunchAgents/net.alexchang.<YOUR_JOB>.plist

launchctl stop net.alexchang.<YOUR_JOB>

觀察

launchctl list | grep <YOUR_JOB>

refreence: ref, ref2