抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

1. cron(crond)介绍

crond是linux下用来周期性执行某种任务或等待处理某些事件的一个守护进程,crond进程启动后,会每分钟定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。

2. 调度分类和配置文件

Linux下的任务调度分为两类,系统任务调度和用户任务调度。

2.1. 配置文件

  • /etc/cron.deny:该文件中所列用户不允许使用crontab命令。

  • /etc/cron.allow:该文件中所列用户允许使用crontab命令。

  • /etc/cron.d/:这个目录用来存放任何要执行的crontab文件或脚本。

2.2. 调度分类

2.2.1. 系统任务调度

系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。
/etc/crontab文件就是系统任务调度的配置文件。这个文件负责调度各种管理和维护任务。

2.2.2. 用户任务调度

用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。
所有用户定义的crontab 文件都被保存在/var/spool/cron目录中。
其文件名与用户名一致。目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名。

2.2.3. 补充

还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期/月执行一次。

2.2.4. crontab文件的含义

用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段。

格式如下:
minute hour day month week command
其中:

  • minute:表示分钟,可以是从0到59之间的任何整数。

  • hour:表示小时,可以是从0到23之间的任何整数。

  • day:表示日期,可以是从1到31之间的任何整数。

  • month:表示月份,可以是从1到12之间的任何整数。

  • week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

command:要执行的命令,可以是系统命令/自己编写的脚本文件。

在以上各个字段中,还可以使用以下特殊字符:

*:代表所有可能的值。

例如:month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

,:可以用逗号隔开的值指定一个列表范围。

例如:”1,2,5,7,8,9″

–:可以用整数之间的中杠表示一个整数范围。

例如:”2-6″表示”2,3,4,5,6″

/:可以用正斜线指定时间的间隔频率。

例如:”0-23/2″表示每两小时执行一次。

2.2.5. crontab命令详解

格式:
crontab [-u username]
参数:

  • -e:编辑工作表

  • -l:列出工作表里的命令

  • -r:删除工作

补充:
省略用户表表示操作当前用户的crontab。
功能:
在固定的间隔时间执行指定的系统指令/脚本。

常用周期性的日志分析或数据备份等工作。

2.2.6. 操作crontab文件

  • crontab -e:进入当前用户的工作表编辑,是常见的vim界面。

  • crontab -l:列出所有的任务

  • crontab -l > /mycron:备份任务

  • crontab -r:删除crontab 文件

  • crontab  /mycron:恢复备份的crontab 文件

补充:
恢复的两种方式
刚刚我们备份到家目录下一个mycron文件

方式1:
将其mycron拷贝到/var/spool/cron/,其中是用户名。

方式2:
如果由于权限问题无法完成拷贝,可以用crontab

引用:https://www.haodiyw.com/i/124398.html


评论