Linux延时和定时任务学习总结

延时任务

概念

  1. at命令可以指定某一任务在将来的特定时间运行。该作业可能是一次备份,对您系统的检查或者特定时间发送的通知。那些需要花费很长时间才可以完成的作业正适合at命令。仅需要使用at命令即任务设置为在一分钟或者两分钟之后运行。然后您便可以安全注销,因为该任务会在与shell会话断开连接的情况下运行。

  2. at命令操作格式:在输入at命令之后,'ENTER’继续键入作业中包含的其他命令,任务可由多个命令组成。在完成键入要运行的命令时,在单独出现的一行’ctrl+d’完成任务。

[root@example]$ at 指定时间				#定时任务,指定时间
at>在这里插入任务命令1				#插入1条或多条命令
at>在这里插入任务命令2
at>在这里插入任务命令n
at><EOT> 							#Ctrl+D结束指定
job 1 at Mon Oct 21 8:35:00 2019   #延时任务编号,执行时间等信息
  1. 时间概念
区分定义格式
绝对时间具体的时间或者日期1.当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行
2.使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间
3.采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午
4.指定命令执行的具体日期,指定格式为month-day(月 )日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)或mmddyy(月日年)或yy-mm-dd(年-月-日)。指定的日期必须跟在指定时间的后面。
相对时间当前时间的相对时间格式:now + count time-units例如now + 1min #1分钟以后
now就是当前时间
count是时间计数,究竟是几天,还是几小时
time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)
更有一种计时方法就是直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。

at命令

at [选项] [job号]
at -l				#查看延时任务列表,显示具体job号和job内容
at -c job号			#根据job号,查看job号对应的任务内容
at -r job号			#根据job号,取消对应job号任务内容

在这里插入图片描述

黑白名单

名称文件位置系统生成意义
黑名单/etc/at.deny默认自动生成名单中的用户不能使用at命令
白名单/etc/at.allow默认不存在,需要手动添加,添加后优先级高于黑名单仅名单中的用户可使用,root用户默认可使用
vim /etc/at.deny	#添加格式如下
tom					#添加用户tom
harry				#添加用户harry
leo					#添加用户leo
......				#可添加多个

定时任务

概念

  1. crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
  2. Linux下的任务调度分为两类:系统级别和用户级别
  3. 用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。
  4. 系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。
  5. 任务格式
* * * * *        command(必须是绝对路径)(而且必须有执行权限x)
#第一个* 表示分钟   0-59
#第二个* 表示小时   0-23
#第三个* 表示天     1-31
#第四个* 表示月     1-12
#第五个* 表示周     0-7
#command:必须是绝对路径)(而且必须有执行权限x)
* * * * * command
#'*'(星号)   代表任何时间。第一个"*"就代表一小时种每分钟都执行一次的意思。
0 1,3,5 * * * command
#','(逗号)   代表不连续的时间。代表在每天的 1 点 0 分、3 点 0 分、5 点 0 分都执行一次命令。
0 4 * * * 1-3 command
#'-'(中杠)   代表连续的时间范围。代表每周一到周三的凌晨 4 点 0 分执行命令。
*/10 * * * * command
#'/'(正斜线) 代表每隔多久执行一次。代表每隔 10 分钟就执行一次命令。

用户级别

配置文件

路径:var/spool/cron/用户名
文件:用户名命名的文件是此用户的crontab服务配置文件

命令操作

crontab [选项]
-u user		#用来设定某个用户的crontab服务,例如'-u demo'表示demo用户的crontab服务,此选项一般有root用户来运行。
-e			#编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户。
-l			#显示某用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户。
-r			#从/var/spool/cron删除某用户的 crontab 文件,如果不指定用户,则默认删除当前用户的crontab文件。 
-i			#和-r联合使用,在删除用户的文件时,提示确认信息。

黑白名单

名称文件位置系统生成意义
黑名单/etc/cron.deny默认自动生成名单中的用户不能使用crontab命令
白名单/etc/cron.allow默认不存在,需要手动添加,添加后优先级高于黑名单仅名单中的用户可使用命令,root用户默认可使用

系统级别

配置文件

  1. 添加脚本系统自动执行,系统给出了3种执行时间目录
/etc/cron.hourly/			#将执行脚本放入此目录中,系统每小时自动执行
/etc/cron.daliy/			#将执行脚本放入此目录中,系统每天自动执行
/etc/cron.weekly/			#将执行脚本放入此目录中,系统每周自动执行
/etc/cron.monthly/			#将执行脚本放入此目录中,系统每月自动执行
  1. 添加脚本及crontab配置文件
/etc/cron.d/				#将crontab配置文件放入其中,并写好规则,crond服务会读取此目录文件
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值