Linux-----一次性任务与周期性任务的设置

it2025-04-21  2

目录

一:at一次性任务设置1.1:at命令基本不格式1.2:at命令使用顺序1.3:atq命令,查看待执行的任务列表1.4:atrm命令,删除指定编号的at任务 二:crontab周期性任务设置2.1:crontab的配置文件和目录2.1.1:/etc/crontaab全局配置文件2.1.2:/etc/cron.*系统默认设置2.1.3:/var/spool/cron/用户名 用户定义的位置 2.2:使用crontab命令管理用户的计划任务

一:at一次性任务设置

CentOS7系统中的计划任务是由at,cronie软件包提供,通过atd和crond这两个系统服务实现一次性,周期性的计划任务功能,并分别通过at,crontab命令进行计划任务设置开启系统服务atd是at命令设置的计划任务的前提条件

1.1:at命令基本不格式

at [HH:MM] [yyyy-mm-dd] '//at 时:分 年-月-日'

1.2:at命令使用顺序

查看时间—设置时间—输入命令—CTRL+D提交任务date:查看当前时间.设置任务,时间不可在当前时间之前命令输入完成后按CTRL+D提交任务即可 [root@localhost ~]# date '//查看当前时间' 2020年 10月 21日 星期三 22:00:58 CST [root@localhost ~]# at 22:10 2020-10-21 '//设置任务执行时间'

1.3:atq命令,查看待执行的任务列表

对于已经设置,但并未执行的任务,可通过atq命令查看.(已经执行的任务不会出现)atq查看的任务列表,每个任务的序号不会变动,即便1-5任务序号任务已经执行完毕,现实的第六个为执行任务序号也是6,而不会变成1

1.4:atrm命令,删除指定编号的at任务

atrm命令用来删除指定编号的at任务,编号可以通过atq查看删除后的at任务不会出现在atp显示结果中

二:crontab周期性任务设置

crontab(定时任务)使用crontab命令设置的计划任务可以按照预设的周期重复执行,可以大大减轻重复性系统管理任务的操作软件包cronie提供crontab工具,系统服务crontab和配置文件/etc/crontab开启系统服务crontab十七栋周期性任务的前提条件

2.1:crontab的配置文件和目录

crontab通过多个目录和文件设置计划任务,不同类型的任务有不同的配置文件来配置

2.1.1:/etc/crontaab全局配置文件

全局配置文件/etc/crontab 文件中设置的是维护Linux系统所需要的任务Linux系统及相关程序在安装时自动设置不建议用户手动修改此文件 [root@localhost ~]# cat /etc/crontab '//查看系统任务配置文件' SHELL=/bin/bash '//设置执行计划任务的Shell环境' PATH=/sbin:/bin:/usr/sbin:/usr/bin '//定义可执行命令及程序的路径' MAILTO=root '//将任务输出信息发送到指定用户的邮箱' HOME=/ '//执行计划任务时使用的主目录' # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) '//分钟范围:0-59' # | .------------- hour (0 - 23) '//小时范围:0-23' # | | .---------- day of month (1 - 31) '//一个月的天数范围:1-31' # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... '//月数范围:1-12' # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat '//一周的天数范围: 0-6(周日用0或者7表示)' # | | | | | # * * * * * user-name command to be executed

2.1.2:/etc/cron.*系统默认设置

系统默认设置cron人物的配置文件存放目录软件包crontabs安装后,会在/etc/cron.*/目录下生成存放一些系统默认设置的计划任务目录,设置了系统每个小时,每一天做些什么任务例如: /etc/cron.hourly/ 目录下存放的是系统每小时要做的任务可执行脚本 /etc/cron.daily/ 目录下存放的是系统每天要做的任务可执行脚本 /etc/cron/weekly/ 目录下存放的是系统每周要做的任务可执行脚本 /etc/cron/monthly/ 目录下存放的是系统每月要做的任务可执行脚本这些是可执行脚本,不是cron配置文件,cron服务通过run-parts工具调用执行这些脚本

2.1.3:/var/spool/cron/用户名 用户定义的位置

用户自行执行的cron计划任务将被保存在目录/var/spool/cron/中用户使用crontab命令创建计划任务,就会在/var/spool/cron/目录下生成一个与用户名相同的文件例如: root用户的cron计划任务保存在配置文件/var/spool/cron/root 中 [root@localhost ~]# ls -l /var/spool/cron/* ls: 无法访问/var/spool/cron/*: 没有那个文件或目录 '//没有创建任务' cron守护进程会自动检查上述三个文件,若有配置更改,就会载入内存,不许重启cron守护进程就可以时设置生效

2.2:使用crontab命令管理用户的计划任务

常用选项 crontab -e [-u 用户名] '//编辑计划任务 e:edit,编辑,使用方式同Vim编辑器。' crontab -l [-u 用户名] '//查看计划任务 l:list,列表' crontab -r [-u 用户名] '//删除计划任务 r:remove,移除' crontab -l '//查看当前用户的计划列表' crontab -l -u lisi '//查看lisi用户的计划任务' crontab -e '//可以操作删除一条计划任务' crontab -r '//删除用户所有的计划任务' 命令格式:时间周期设置+任务内容设置 分时日月周的取值范围和命令说明 字段命令分钟取值范围0-59之间的任意数字小时取值范围0-23之间的任意数字日期取值范围1-31之间的任意数字月份取值范围1-12之间的任意数字星期取值范围0-7之间的任意数字,0和7都代表星期日命令要执行的命令或程序脚本 时间数值的特殊表示方法 * 表示该范围内的任意时间 , 表示间隔的多个不连续的时间点 - 表示一个连续的时间范围 / 指定间隔的时间频率 例如: 0 17 * * 1-5 '//表示周一到周五每天17:00' 30 8 * * 1,3,5 '// 表示每周一,三,五的8点30分' 0 8-18/2 * * * '// 表示8点到18点之间每2小时' 0 * */3 * * '//表示每3天'
最新回复(0)