说明:
1,Linux 和 Mac 下操作 crontab 都是一致的
2, 配置文件都在 / etc/crontab 下, 如果没有就创建.
3, 测试发现直接使用 crontab -e 命令创建的定时任务是放在临时文件夹的, 重启会删除, 并且与 / etc/crontab 文件无关联.
实际操作:
查看 crontab 是否启动
sudo launchctl list | grep cron
检查需要的文件
- $ LaunchAgents ll /etc/crontab
- ls: /etc/crontab: No such file or directory #表示没有这个文件, 需要创建一个
创建文件
sudo touch /etc/crontab
crontab 的参数
-u user: 用来设定某个用户的 crontab 服务;
file:file 是命令文件的名字, 表示将 file 做为 crontab 的任务列表文件并载入 crontab. 如果在命令行中没有指定这个文件, crontab 命令将接受标准输入 (键盘) 上键入的命令, 并将它们载入 crontab.
-e: 编辑某个用户的 crontab 文件内容. 如果不指定用户, 则表示编辑当前用户的 crontab 文件.
-l: 显示某个用户的 crontab 文件内容, 如果不指定用户, 则表示显示当前用户的 crontab 文件内容.
-r: 从 / var/spool/cron 目录中删除某个用户的 crontab 文件, 如果不指定用户, 则默认删除当前用户的 crontab 文件.
-i: 在删除用户的 crontab 文件时给确认提示.
eg: /1 * * */bin/date>> /User/Username(你的用户名)/time.txt 表示每分钟输出当前时间到 time.txt 上.
如果出现以下问题
- crontab: no crontab for hayek - using an empty one
- crontab: "/usr/bin/vi" exited with status 1
方法 1:EDITOR=VIM crontab -e 直接编辑, 以后直接 crontab -e 直接打开就行.
方法 2:export EDITOR=VIM
方法 3: 向 cron 进程提交一个 crontab 文件之前, 首先要设置环境变量 EDITOR.cron 进程根据它来确定使用哪个编辑器编辑 crontab 文件. 9 9 % 的 UNIX 和 Linux 用户都使用 vi, 如果你也是这样, 那么你就编辑 $HOME 目录下的. profile 文件, 在其中加入这样一行:
EDITOR=vi; export EDITOR
crontab 的文件格式
* 第 1 列分钟 0~59
* 第 2 列小时 0~23(0 表示子夜)
* 第 3 列日 1~31
* 第 4 列月 1~12
* 第 5 列星期 0~7(0 和 7 表示星期天)
* 第 6 列要运行的命令
crontab 服务的重启关闭, 开启
Mac 系统下
- sudo /usr/sbin/cron start
- sudo /usr/sbin/cron restart
- sudo /usr/sbin/cron stop
- Ubuntu:
- sudo /etc/init.d/cron start
- sudo /etc/init.d/cron stop
- sudo /etc/init.d/cron restart
参考:
- http://blog.csdn.net/biyongyao/article/details/77791238(以上内容转自此篇文章)
- http://blog.csdn.net/lgt633744/article/details/45932035(另类的定时任务实现)
来源: http://www.bubuko.com/infodetail-3258961.html