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

一: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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值