在 macOS 中使用 crontab

习惯了在 linux 中使用 crontab 来设置定时任务,于是,想在 macOS 中也用它来做同样的事情。

但是,在 macOS 中却遇到了以下错误:

$ crontab -e
crontab: no crontab for floodliu - using an empty one
crontab: "/usr/bin/vi" exited with status 1

因为我之前用 brew 安装过 vim,因此 /usr/bin/vi 被链接到了 vim

$ ll /usr/bin/vi
lrwxr-xr-x  1 root  wheel  3  9 21 21:47 /usr/bin/vi -> vim

因此,该问题可以设置 EDITOR=vim 来解决:

$ export EDITOR=vim
$ crontab -e

如果不希望每次使用 crontab -e 前都要这样设置,可以把 export EDITOR=vim 写到shell的启动配置文件中。

  • 对于bash,该文件是 ~/.bashrc
  • 对于zsh,该文件是 ~/.zshrc

但是,设置了 EDITOR=vim 之后,再次使用 crontab -e 命令,又报错如下:

$ crontab -e
crontab: no crontab for floodliu - using an empty one
crontab: temp file must be edited in place

该问题可以修改vim配置文件来解决。在 ~/.vimrc 中添加以下内容:

autocmd filetype crontab set nobackup nowritebackup

至此,就可以正常使用crontab了。

  • 查看crontab命令的用法:$ man crontab
  • 查看crontab定时任务的格式:$ man 5 crontab

你可能感兴趣的:(在 macOS 中使用 crontab)