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