Shell脚本——crontab命令
Posted twc829
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell脚本——crontab命令相关的知识,希望对你有一定的参考价值。
crond是Linux系统用以周期性执行某种任务或等待处理某些事件的一个守护进程;
一、crond介绍
当完成安装操作系统,默认安装此服务工具,并自动启动crond进程;
crond进程每分钟定时检查是否有要执行的任务,若有则自动执行该任务;
1 Linux系统下的任务调度分类——系统任务调度和用户任务调度
(1)系统任务调度
系统周期性执行工作,如写缓存数据到硬盘、日志清理等;
/etc/crontab文件是系统任务调度的配置文件,文件内容如下:
其中,前四行是配置crond任务运行的环境变量,第一行SHELL变量指定系统使用哪个shell,第二行PATH变量指定系统执行命令的路径,第三行MAILTO变量指定crond任务执行信息通过电子邮件发送给哪个用户,若为空则不发送任务执行信息,第四行HOME变量指定在执行命令或脚本时使用的主目录;
(2)用户任务调度
用户定期执行工作,如用户数据备份、定时邮件提醒等;
用户可使用crontab工具定制自己的计划任务;
所有用户定义的crontab文件都保存在/var/spool/cron目录中,文件名和用户名一致;
2 crontab定时执行
(1)基本格式
crontab文件(无论是系统的还是用户的任务调度)中,每行代表一个任务,每行的每个字段代表一项设置;
格式共分为6个字段,前5个是时间设定字段,第6个是执行的命令字段,如下:
mitute hour day month week command
其中,minute表示分钟,范围0-59的整数;hour表示小时,范围0-23的整数;day表示日期,范围1-31的整数;month表示月份,范围1-12的整数;week表示星期,范围0-7的整数(0和7都表示周日);command表示要执行的命令,可以是系统命令,也可以是编写的脚本;
(2)特殊字符
* 表示所有可能的值
, 表示指定一个列表范围
- 表示一个整数范围
/ 表示指定时间的间隔频率
# 表示注释
(3)举例
# 每天21:30重启apache
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
# 每月1、10、22日的4:45重启apache
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
# 每周六、日的1:10重启apache
10 1 * * 6,7 /usr/local/etc/rc.d/lighttpd restart
# 每天18:00到23:00之间每隔30分钟重启apache
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
# 每周六的23:00重启apache
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
# 每小时重启apache
0 */1 * * * /usr/local/etc/rc.d/lighttpd restart
# 23:00到7:00之间每隔一小时重启apache
0 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
# 每月的4日与每周一到周三的11:00重启apache
0 11 4 * 1-3 /usr/local/etc/rc.d/lighttpd restart
# 一月一号的4:00重启apache
0 4 1 1 * /usr/local/etc/rc.d/lighttpd restart
二、cond服务
1 安装
yum install crontabs
2 操作
# 启动服务
/sbin/service crond start
# 关闭服务
/sbin/service crond stop
# 重启服务
/sbin/service crond restart
# 重新载入配置
/sbin/service crond reload
# 查看crontab服务状态
/sbin/service crond status
# 查看crontab服务是否已设置为开机启动
ntsysv
# 将crontab服务加入开机自动启动中
chkconfig -level 35 crond on
三、crontab命令
省略;
想要继续学习的可参考:http://www.jb51.net/LINUXjishu/151805.html
以上是关于Shell脚本——crontab命令的主要内容,如果未能解决你的问题,请参考以下文章