Linux下crontab详解

1、crond介绍
crond是Linux下的任务调度命令,让系统定期执行指定程序。crond命令每分钟都会检查是否有要执行的工作,若有要执行的程序便会自动执行。
linux下任务调度工作主要分两类:
1)系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
2)个人执行的工作:某个用户定期要做的工作,自动备份网站程序

2、crond服务启动、关闭
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置

3、在系统启动时自动启动服务
1)创建一个脚本crond.restart,内容如下:
service crond restart
2)把创建的脚本crond.restart放到/etc/rc.d/init.d目录下,这样就会每次开机自动运行脚本crond.restart。

4、crontab命令(用于设定cron服务)
crontab -u 
//设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除没个用户的cron服务
crontab -e //编辑某个用户的cron服务

//查看root用户的cron设置
crontab -u root -l

//删除oracle用户的cron设置
crontab -u oracle -r

//编辑cron服务
crontab -u root -e

5、创建任务调度的2种方式
1)用crontab -e命令创建
用crontab -e命令创建的任务调度存于/var/spool/cron中,其文件名与用户名一致。格式如下:
 分      小时     日       月      星期     命令
0-59   0-23   1-31   1-12     0-6     command     (取值范围,0表示周日一般一行对应一个任务)
每个字段代表的含义如下:
分       每个小时的第几分钟执行该任务
小时    每天的第几个小时执行该任务
日       每月的第几天执行该任务
月       每年的第几个月执行该任务
星期    每周的第几天执行该任务
命令    指定要执行的程序

"*"代表取值范围内的数字,
"/"代表"每",
"-"代表从某个数字到某个数字,
","分开几个离散的数字

//10月~12月间,每周一、周三、周五,每隔2个小时,执行一次wwwbak.sh
* */2 * 10-12 1,3,5 /home/tough/www/wwwbak.sh

//每个月1-5号的每天22点,执行一次wwwbak.sh
* 22 1-5 * * /home/tough/www/wwwbak.sh

2)编辑/etc/crontab文件(文件格式同上)
[root@toughhou ~]# more /etc/crontab 
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

注:cron服务每分钟不仅要读一次/var/spool/cron内的所有文件(个人执行的工作),还需要读一次/etc/crontab(系统执行的工作)。

6、任务调度执行结果输出
//10月~12月间,每周一、周三、周五,每隔2个小时,执行一次wwwbak.sh,并把执行结果输出到var/wwwbak.log文件中
* */2 * 10-12 1,3,5 /home/tough/www/wwwbak.sh > /var/wwwbak.log 2 >&1
注:2>&1 表示执行结果及错误信息。

 

原文地址:https://www.cnblogs.com/toughhou/p/3778779.html