通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。
命令格式
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文件时给确认提示。
crontab的文件格式
分 时 日 月 星期 要运行的命令
* 第1列分钟0~59
* 第2列小时0~23(0表示子夜)
* 第3列日1~31
* 第4列月1~12
* 第5列星期0~7(0和7表示星期天)
* 第6列要运行的命令
使用方式
-
修改crontab的默认编辑器
向cron进程提交一个crontab文件之前,首先要设置环境变量EDITOR。cron进程根据它来确定使用哪个编辑器编辑crontab文件。99%的UNIX和LINUX用户都使用vi,如果你也是这样,那么你就编辑$HOME
目录下的.profile
文件,在其中加入这样一行:EDITOR=vi; export EDITOR
-
通过crontab文件的方式
即,根据不同的计划,自定义不同crontab文件,这样便于任务的备份。vi task_crontab crontab task_crontab
第一步通过vi编辑来设置你的定时计划;第二部通过crontab命令使计划生效。
-
直接编辑crontab文件
如果不通过上面文件的方式,那么可以选择这种直接编辑的方式。crontab -e
-
查看当前用户的的定时计划
通过参数-l
:crontab -l
会显示出当前用户总共设置的计划。
-
删除crontab文件
当我们不需要该计划之后,可以通过-r
参数删除。crontab -r
使用实例
- 每分钟执行一次
* * * * * myCommand
-
每小时的第3和第15分钟执行
3,15 * * * * myCommand
-
在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * * myCommand
-
每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * myCommand
-
每周一上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 myCommand
规则说明
*
:代表所有的取值范围内的数字/
:代表每的意思,比如每几天、每几个小时-
:代表从某个数字到某个数字,一个范围,
:代表几个离散的数字