Crontab for Mac
- Crontab是linux下的定时任务命令
- 首先你需要一个可执行命令
- 然后让crontab来定时执行
举个栗子🌰现在在文件目录下有一个名为goroutine的可执行文件,正常情况下想要执行只要输入命令:
./goroutine
- 用crontab来建立定时任务只需要输入
crontab -e
- 进入编辑界面输入
*/10 * * * * /Users/USERNAME/code/go/src/goroutine/goroutine >> /Users/USERNAME/code/go/src/goroutine/goroutine.log
- 命令左边的*表示每分钟 每小时 每天 每月 每周
现在写的这条表示每隔10min执行一次~
命令右边就是需要执行的路径和文件名
::>>表示重定向::,把运行print的结果保存在log文件中 - vim编辑器编辑完保存
- 再执行
crontab -l
就可以看到已有的任务列表 - 执行
sudo /usr/sbin/cron start
就可以开始执行任务
Mac中使用Crontab会遇到的问题
-
crontab -e
编辑完保存以后会报错:
crontab: tmp/tmp.64681: Operation not permitted
这个是因为我用的iTerm2命令行终端没有权限,需要打开mac的系统偏好设置〉安全性与隐私〉隐私〉完全磁盘访问权限,加入iTerm然后勾选就行了
- 上个问题解决完,编辑保存还是报错:
“/usr/bin/vi”exitedwithstatus1
在.bash_profile或者.zshrc中添加设置:
export EDITOR=vim
添加完source一下
- 以上两个问题解决完还有错
crontab: temp file must be edited in place
需要设置一下vim的设置:vim .vimrc
设置加一行autocmd filetype crontab setlocal nobackup nowritebackup
保存退出以后再source一下就可以正常使用crontab了
最后,除了crontab -e和crontab -l还有很多其它的参数,根据自己的需要自由发挥就可以了~