1. 概述:
crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
2. 任务调度的分类:
- 系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。
前四行是用来配置crond任务运行的环境变量
第一行 SHELL变量指定了系统要使用哪个shell,这里是bash
第二行 PATH变量指定了系统执行命令的路径
第三行 MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务执行信息给用户
第四行 HOME变量指定了在执行命令或者脚本时使用的主目录。
第六至九行表示的含义将在下个小节详细讲述。这里不在多说。
- 用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。
3. crond 服务
- 安装crontab:
# yum install crontabs
- 服务操作说明:
#/sbin/service crond start //启动服务
#/sbin/service crond stop //关闭服务
#/sbin/service crond restart //重启服务
#/sbin/service crond reload //重新载入配置
- 查看crontab服务状态:
#service crond status
- 手动启动crontab服务:
#service crond start
- 查看crontab服务是否已设置为开机启动,执行命令:
#ntsysv
加入开机自动启动:
#chkconfig –level 35 crond on
- 终止任务调度
#crontab -r
- 列出当前任务调度
#crontab –l
4. Crontab使用说明
5. 设置用户任务调度
#crontab –e
#输入 * * * * * ls –l /etc/ > /tmp/to.txt
注:*代表每分钟,每小时,每天,每月等
6. 设置crontab的另一种方法
先创建shell文件,然后在crontab中设置执行该shell文件
- #vi /tmp/mytask.sh
- 更改mytask.sh文件的权限类型(可读可写可执行)
#chmod 744 mytask.sh
- #crontab –e
追加输入* * * * * /tmp/mytask.sh
- 这里我们可以看到通过crontab创建的to1.txt文件
- 查看当前任务调度