Linux_定时+延时

 定时,是指在做一件事情过程中,后台有个计时器,预定时间到后触发另一项工作。延时,是指在做一件事情过程中,保持一种工作状态的时间。就如我的闹钟,每天早晨6:30就会准时响起,这就是一个典型的定时任务,如果此时我不想醒来,设置为5分钟后再次提醒,就发起了一个延时任务。
在Linux操作系统中,通过相应的命令也可以进行定时和延迟。延时命令at和定时命令crontable
at命令

  1. at命令两种触发方式。
    方式一:
[root@localhost ~]# at 20:39

在这里插入图片描述
 20:39时在/mnt/目录下创建file1 file2 file3三个文件,Ctrl+D进行提交。可以使用watch命令监控/mnt/目录:

[root@localhost ~]# watch -n 1 ls -l /mnt/

在这里插入图片描述
 20:39时在/mnt/目录下自动生成了三个文件。
方式二:

[root@localhost ~]# at now+1min

在这里插入图片描述
 在一分钟后20:40删除/mnt/目录下的所有文件。
在这里插入图片描述
查看延迟任务

[root@localhost ~]# at -l

在这里插入图片描述
查看任务内容

[root@localhost ~]# at -c 5

在这里插入图片描述
删除延时任务

[root@localhost ~]# at -r 5

在这里插入图片描述
2.at命令的黑白名单

/etc/at.deny	#at的黑名单,在该名单中的用户不能执行at命令
/etc/at.allow	#at的白名单,一旦白名单存在则黑名单失效,除了在白名单中的用户可以执行at命令,其余都是拒绝。

 设置at命令的黑白名单可以控制用户使用at命令。在/etc/目录下的at.deny文件是at的黑名单,将westos用户写入该文件后westos用户就无法使用at命令。
在这里插入图片描述
 /etc/at.allow文件是不存在的,可以自己编辑。一旦白名单存在,黑名单就会失效,除了白名单中的用户,其余用户都会被禁止。再将westos写入at.allow文件之后,只有westos可以使用at命令。
在这里插入图片描述
crontable定时命令
 crond这个软件提供定时服务。可以通过两种方式发起定时任务。
方式一:

[root@localhost ~]# crontab -e

 执行该命令之后,会出现一个编辑界面,写入以下内容:

* * * * * rm -fr /mnt/*	

 由两部分组成,第一部分就是5个*,分别代表分钟 小时 天 月 周,第二部分为执行的命令rm -fr /mnt/*。表示每分钟删除/mnt/下的所有文件。其余示例如下:

* * * * * rm -fr /mnt/*			#每分钟执行一次
*/2 * * * * rm -fr /mnt/* 		#每两分钟执行一次
*/2 09,17 * * *  rm -fr /mnt/*		#每天的9点和17点每隔2分钟执行一次
*/2 09-17 * * *	rm -fr /mnt/*		#每天的9点到17点每隔2分钟执行一次
*/2 09-17 * * 2	rm -fr /mnt/*		#每周二的9点到17点每隔2分钟执行一次
*/2 09-17 1,15 * 2 rm -fr /mnt/*	#每月的1号和15号及每月周2每隔2分钟执行一次
*/2 09-17 1,15 7 2 rm -fr /mnt/*	#7月1号和15号及7月周2每隔2分钟执行一次

通过-u指定用户:

[root@localhost ~]# crontab -u student -e #root指定student用户去发起定时任务
[root@localhost ~]# crontab -u student -l #列出student用户发起的定时任务内容
[root@localhost ~]# crontab -u student -r #删除student用户指定的定时任务

在这里插入图片描述
方式二
 以第一种方式编辑的文件其实就是/var/spool/cron/目录下的文件,文件名是指定的用户,没有指定用户就是root用户:
在这里插入图片描述
 crontable的黑白名单与at命令相似,/etc/cron.deny为cron的黑名单,/etc/cron.allow为白名单,白名单默认是不存在的,一旦白名单存在,黑名单就会失效,除了白名单中的用户,其余用户会被禁止使用crontable命令。
在这里插入图片描述
 将westos写入黑名单,westos用户就会被禁止使用crontable命令。再将westos写入白名单,除了westos用户,除了root其余用户都被禁止使用crontable命令:
在这里插入图片描述
 root用户通过其余用户使用crontable命令是可以发起定时任务的。但是用户登陆后使用crontable是会被禁止的。
 系统中也存在定时任务,不需要人为发起,就会自动执行。只要在/etc/cron.d/目录下写入的定时任务都会被系统自动执行,在该目录下编辑westos文件:
在这里插入图片描述
表示每分钟root用户在/mnt/目录下创建一个test文件。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值