crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
1.1 crontab的调度方式
Linux下的任务调度分为两类,系统任务调度和用户任务调度。
系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。/etc/crontab,cron.daily/,cron.hourly/ cron.monthly/。
一般把计划任务写在这个文件里面就可以了。/etc/crontab
如果想一小时执行一次的脚本放在 cron.hourly/ 目录里面即可一般会被软连接到这个目录下,或者拷贝进来。。
用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。
如果用户 wang 想创建一个用户的计划任务,可以创建一个 wang 的文件,以crontab的格式写任务计划。例如:echo '00 00 * * * /bin/sh /usr/local/webserver/nginx/script/cut_nginx_log.sh' >> /var/spool/cron/root
1.2 crontab的文件格式
crontab文件的格式:
minute hour day month weekday username command
详解:
minute:分,值为0-59
hour:小时,值为1-23
day:天,值为1-31
month:月,值为1-12
weekday:星期,值为0-6(0代表星期天,1代表星期一,以此类推)
username:要执行程序的用户,一般设置为root
command:要执行的程序路径(设置为绝对路径)
2.crontab命令的使用方法
格式:
crontab [选项]
选项:
e:编辑一个新的计划任务
l:显示计划任务
r:删除计划任务
实例:
# crontab -e //创建计划任务
00 * * * * root /usr/bin/date
# crontab -l //查看计划任务
00 * * * * root /usr/bin/date
# crontab -r //删除计划任务,并查看
# crontab -l
no crontab for root
3.crontab实例
1. 每两小时执行一次date命令
* */2 * * * root /usr/bin/date
2.周三和周五8点执行date命令
* 8 * * 3,5 root /usr/bin/date
3.6点到9点执行date命令
* 6-9 * * * root /usr/bin/date
原文地址:http://blog.51cto.com/11060853/2115731