Linux下crontab定时任务配置

CRONTAB概念/介绍

crontab命令用于设置周期性被执行的指令。
cron 系统调度进程。 可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业。crontab命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。系统管理员可以通过cron.deny 和 cron.allow 这两个文件来禁止或允许用户拥有自己的crontab文件。

1: crontab文件一般位于/etc/下,这里面存放系统运行的的调度程序。
Linux下crontab定时任务配置
2:每个用户都会生成自己的crontab文件,一般位于/var/spool/cron目录下
Linux下crontab定时任务配置

如果你用命令crontab -r 就会删除当前用户的crontab文件

3:cron.deny 与 cron.allow文件
/etc/cron.deny 表示不能使用crontab 命令的用户
/etc/cron.allow 表示能使用crontab的用户。
默认情况下,cron.allow文件不存在。如果两个文件同时存在,那么/etc/cron.allow 优先。如果两个文件都不存在,那么只有超级用户可以安排作业。

CRONTAB语法及应用
1:查看当前用户(查看指定用户、使用-u)的定时任务
[[email protected] ~]$ crontab -l -u www
* * * * * cd /sites/gapi.350.com/web/ && ./croncommand.sh

2:编辑当前用户的定时任务
[[email protected] ~]$ crontab -e -u www
可以在编辑状态修改、删除、新增一些定时任务。注释一般用#

3:删除当前用户的定时任务
[[email protected] ~]# crontab -r
[[email protected] ~]# crontab -l
no crontab for root

4:如下所示,一般crontab文件里面的定时任务格式如下所示:
59 23 * * * cd /sites/gapi.350.com/web/ && ./croncommand.sh

crontab 文件中每个条目中各个域的意义和格式:
**第一列 分钟: 1——59
第二列 小时: 1——23(0表示子夜)
第三列 日 : 1——31
第四列 月 : 1——12
第五列 星期: 星期0——6(0表示星期天,1表示星期一、以此类推)
第六列 要运行的命令**

我们暂且用C1、C2、C3、C4、C5、C6代表这六列,前面五列通过组合方式来决定执行脚本的频率,最小频率为每分钟执行一次,其中Cn可以用 [* ; */n ; T1-T2; a,b,c] 四种形式来表示:

当 C1 为 * 时表示每分钟都要执行脚本,C2 为 * 时表示每小时都要执行程式,依次类推…..
当 C1 为 T1-T2 时表示从第 T1 分钟到第 T2 分钟这段时间内要执行,C2 为 T1-T2 时表示从第 T1 到第 T2 小时都要执行,依次类推….
当 C1 为 /n 时表示每 n 分钟的时间间隔执行一次,C2 为 /n 表示每隔n小时的间隔执行一次,依次类推…..
当 C1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,C2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,依次类推….

下面列举几个例子供大家参考
1: 59 23 * * * /home/oracle/scripts/alert_log_archive.sh
表示每天23点59分执行脚本
2: /5 * * * /home/oracle/scripts/monitoring_alert_log.sh
表示每5分钟执行一次脚本/home/oracle/scripts/monitoring_alert_log.sh
3: 0 20 * * 1-5 mail -s “****[email protected] < /tmp/maildata
周一到周五每天下午 20:00 寄一封信给 [email protected]