1、Linux和Mac下操作crontab都是一致的
2、配置文件都在/etc/crontab下,如果没有就创建。
3、crontab参数
crontab [-u user] file crontab [-u user] [ -e | -l | -r ]
-u user:用来设定某个用户的crontab服务;
file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
-i:在删除用户的crontab文件时给确认提示。
4、配置环境变量,打开open ~/.bash_profile文件添加以下内容;
EDITOR=vim crontab -e;export EDITOR
5、crontab的文件格式
eg:* * * * * sh /xxxxx/davecron.sh >>/xxxxx/davecron.log
* 第1列分钟0~59
* 第2列小时0~23(0表示子夜)
* 第3列日1~31
* 第4列月1~12
* 第5列星期0~7(0和7表示星期天)
* 第6列要运行的命令
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
7、单独执行.sh文件可以成功,加入crontab中,没有定时执行问题
原因:环境变量问题
解决:
1.写shell脚本时头部添加:#!/bin/bash
2.终端输入env查看系统变量
3.将系统变量添加到shell文件中
4.再次运行crontab定时执行,成功