crond 是 linux 系统中用来定期执行命令或指令程序的一种服务或软件.
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://www.bubuko.com/infodetail-2600401.html