系统延迟任务设定

注意:定时任务是永久的,而延时任务是一次性的

1.系统延时任务:
工作时间设定脚本,可以在不工作的时候自动执行,提高了效率

实验前提:在虚拟机中用root 用户登陆

at 16:53 ##设定任务执行时间
at> rm -fr * ##任务动作
at> < EOT > ##用ctrl+d 发起任务

如果不输入ctrl+d,将可以一直设定任务动作
centos系统下如何使脚本延时启动 linux 延迟执行脚本_其他
at -l ##查看任务列表
centos系统下如何使脚本延时启动 linux 延迟执行脚本_root用户_02
at -c 任务号 ##查看任务内容

at now+1min ##延时一分钟执行任务
at> touch /mnt/file{1…10} ##执行的任务内容
at> < EOT >

centos系统下如何使脚本延时启动 linux 延迟执行脚本_root用户_03
at -r 任务号 ##删除任务,取消执行任务
先建立一个一分钟后执行的任务
centos系统下如何使脚本延时启动 linux 延迟执行脚本_定时任务_04
然后确定任务号后,将任务取消
centos系统下如何使脚本延时启动 linux 延迟执行脚本_定时任务_05

系统延迟任务的黑白名单

at命令黑名单的文件/etc/at.deny
使用超级用户在文件中写入用户的名字,被写入的用户不能使用at命令。
centos系统下如何使脚本延时启动 linux 延迟执行脚本_白名单_06
将student用户写入文件中
centos系统下如何使脚本延时启动 linux 延迟执行脚本_root用户_07
登入student用户后发现,student用户不能使用at命令
centos系统下如何使脚本延时启动 linux 延迟执行脚本_白名单_08
at命令白名单的文件/etc/at.allow
该文件默认不存在,需要自己创建
当白名单文件存在时,黑名单失效,只有在/etc/at.allow文件中写入的用户名,才可以执行at命令,(root用户也可以)。
centos系统下如何使脚本延时启动 linux 延迟执行脚本_定时任务_09
在白名单中写入lee
centos系统下如何使脚本延时启动 linux 延迟执行脚本_白名单_10
此时只有lee(和root)才可以用at命令

用户级系统定时任务

crontab
crontab -e(编辑) -u (指定某用户的定时任务)

使用man 5 crontab 查看文件编辑方法
设定时间的话,下列五个信息必须全部都得写入
centos系统下如何使脚本延时启动 linux 延迟执行脚本_root用户_11
一个时间节点到一个时间节点执行任务,使用‘-’表示
centos系统下如何使脚本延时启动 linux 延迟执行脚本_其他_12
什么时间节点和什么时间节点,使用‘,’隔开表示;每隔多久进行执行一次任务,使用‘/ ’表示
centos系统下如何使脚本延时启动 linux 延迟执行脚本_白名单_13
centos系统下如何使脚本延时启动 linux 延迟执行脚本_其他_14
centos系统下如何使脚本延时启动 linux 延迟执行脚本_root用户_15
每月的1号和15号,从9点到17点,每隔两分钟执行一次任务动作
centos系统下如何使脚本延时启动 linux 延迟执行脚本_其他_16
在3月到5月,这几个月的1号和15号,从9点到17点,每隔两分钟执行一次任务动作
centos系统下如何使脚本延时启动 linux 延迟执行脚本_其他_17
在3月到5月,这几个月的1号和15号,以及星期五,从9点到17点,每隔两分钟执行一次任务动作
centos系统下如何使脚本延时启动 linux 延迟执行脚本_root用户_18
因为是使用root进行编辑的,所以是在/var/spool/cron/root 中(使用什么用户,生成的crontab文件就属于什么用户)
centos系统下如何使脚本延时启动 linux 延迟执行脚本_其他_19
crontab -u root -l 表示查看root用户下的crontab的定时任务列表
centos系统下如何使脚本延时启动 linux 延迟执行脚本_root用户_20
crontab -r -u root 表示取消root用户下的定时任务,取消后发现在/var/spool/cron 中的文件也被删除掉了
centos系统下如何使脚本延时启动 linux 延迟执行脚本_其他_21