首页 > 代码库 > crontab的使用

crontab的使用

crontab是用来制定计划任务,在规定的时间执行一些命令

-l 
显示用户的Crontab文件的内容                       crontabl –l


-i 
删除用户的Crontab文件前给提示                    crontabl -ri 


-r 
从Crontab目录中删除用户的Crontab文件     crontabl -r 


-e 
编辑用户的Crontab文件                                    crontabl -e 


时程表的格式如下 : 
f1 f2 f3 f4 f5 program  
  
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。 
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推 
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推 
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推 
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推 


/etc/crontab存放有系统运行的一些调度程序,使用crontab命令制定的计划任务就是存放在这里。

/etc/cron.deny 表示不能使用crontab 命令的用户
/etc/cron.allow 表示能使用crontab命令的用户

如果两个文件同时存在,那么/etc/cron.allow 优先。
如果两个文件都不存在,那么只有超级用户可以安排作业。

cron.monthly
cron.daily

cron.hourly

cron.weekly


01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

我们将每天都要执行的脚本文件放到/etc/cron.daily目录,这样cron守护进程就会在每天早上的4:02开始执行该目录下的所有脚本。

每个用户都会生成一个自己的crontab 文件。这些文件在/var/spool/cron目录下.

 例子:

在 12 月内, 每天的早上 6 点到 12 点中,每隔 20 分钟执行一次 /usr/bin/backup : 
0 6-12/3 * 12 * /usr/bin/backup  
  
周一到周五每天下午 5:00 寄一封信给 alex@domain.name : 
0 17 * * 1-5 mail -s "hi" alex@domain.name  /dev/null 2>&1 即可 

0 */2 * * * /sbin/service httpd restart  意思是每两个小时重启一次apache 
50 7 * * * /sbin/service sshd start  意思是每天7:50开启ssh服务 
50 22 * * * /sbin/service sshd stop  意思是每天22:50关闭ssh服务 
0 0 1,15 * * fsck /home  每月1号和15号检查/home 磁盘 
1 * * * * /home/bruce/backup  每小时的第一分执行 /home/bruce/backup这个文件 
00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \;  每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。
30 6 */10 * * ls  意思是每月的1、11、21、31日是的6:30执行一次ls命令