crond的概念和crontab是不可分割的。crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。
其中crond的基本常用命令含义如下:
crontab -e 编辑某个用户的crond服务(编辑任务计划) crontab -e = vim /var/spool/cron/root(用户名)
crontab -l 列出某个用户的crond的详细内容(已经做好的任务计划)
crontab -u 设定编辑某个用户的crond服务(设定编辑某个用户的的任务计划) 格式: crontab -u 用户 -e
crontab -r 删除某个用户下的crond服务(删除做好的任务计划)
linux系统任务中定时任务调度工作可以分为两种情况:
1、linux系统自身定期执行的任务工作,系统周期自行执行的任务工作。如轮询系统日志、备份系统数据、清理系统缓存等,这些任务无需我们认为干预。
2、用户执行的任务工作
定时软件种类:
1、at :适合执行一次就结束的调度任务,对应的是atd服务。
2、crond : 适合执行周期性的任务计划
3、anacron :这个命令主要用于非7*24小时开机的服务器准备的,以天为周期或者以开机为周期,将所有停机之间未做的任务计划全部都做一遍。
crontab -e 编辑模式详解:
* * * * * 需要执行的命令或脚本
分(00—59) 时(00—23) 日(01—31) 月(01—12) 周(0—6(0=7))
(以上五个星代表五个时间字段,其含义对应下方解释)
例:每周六,周日上午九点运行shell脚本a.sh
00 09 * * 6,0 /bin/sh a.sh
针对crontab -e 编辑中的注意事项:
1、定时任务最好加上注释,这样方便其他人知道这条计划任务的作用,方便做任务交接。
例: 创建时间 创建人 创建目的
2、定时任务最好使用脚本进行执行
3、在每一个定时任务后最好加 >/dev/null 2>&1 (因为短时间会没影响,长时间会占用inode过多,造成其他文件无处可放)
4、执行shell脚本任务前一定要加 /bin/sh
5、生产任务程序不要随意打印输出信息
6、系统环境变量问题,,,系统默认环境变量定时任务有时会取不到,造成计划任务失败(命令行执行是可以成功的,脚本执行就是失败)
针对计划任务建议:
原文地址:http://blog.51cto.com/13214087/2116038