红联Linux门户
Linux帮助

Linux下的周期性任务

发布时间:2008-02-29 15:45:50来源:红联作者:satisfy
Linux下的周期性任务cron(任务触发器crontab)

1.定期任务

crond 是linux用来定期执行程序的命令。
当安装完成操作系统之后,默认便会启动此任务调度命令。
crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。

而linux任务调度的工作主要分为以下两类:
A.系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
B.个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置

Crontab是UNIX系统下的定时任务触发器,其使用者的权限记载在下列两个文件中:

文件 含义
/etc/cron.deny 该文件中所列的用户不允许使用Crontab命令
/etc/cron.allow 该文件中所列的用户允许使用Crontab命令
/var/spool/cron/ 是所有用户的crontab文件
/var/spool/cron/crontabs /var/spool/cron/crontabs

2.命令crontab

Crontab命令的格式为:
crontab [-u username] -l|-r|-e ,其参数含义:

crontabl -l 显示用户的Crontab文件的内容(list)
crontabl -r 从Crontab目录中删除用户的Crontab文件
crontabl -e 编辑用户的Crontab文件(edit)

用户所建立的Crontab文件存于/var/spool/cron中,其文件名与用户名一致。
它的格式共分为六段,前五段为时间设定段,第六段为所要执行的命令段,格式如下:
minute hour day month dayofweek command
* * * * *
其时间段的含义:

段 含义 取值范围
-------------------------
第1段 代表分钟minute 0--59
第2段 代表小时hour 0--23
第3段 代表日期day 1--31
第4段 代表月份month 1--12
第5段 星期几dayofweek 0--6 ,0代表星期日

3.示例含义

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 每小时的第1分钟执行 /home/bruce/backup这个文件
30 6 */10 * * ls 每月的1、11、21、31日是的6:30执行一次ls命令
00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \;
每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。
文章评论

共有 1 条评论

  1. piaoling 于 2008-02-29 18:19:13发表:

    虽然网上也有这样的内容,还是支持一下,方便坛子里的学习~~