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命令的主要内容,如果未能解决你的问题,请参考以下文章

Linux crontab配置

(shell 脚本文件)pm2:在 crontab 任务中找不到命令

shell脚本 手动执行成功,crontab执行缺少数据

Shell脚本——crontab命令

解决命令行执行shell脚本成功,但crontab执行失败

Crontab 让linux定时执行shell脚本