系统延时及定时任务
一:系统延时任务
所谓的系统延时就是指在若干时间以后执行什么动作,比如说文件的删除,添加等等
一次性延迟,
1:at命令
at 命令可以指定某一任务在将来特定时间运行。该作业可以是一次文件的备份,对系
统的检查在特定时间发送通知,那些需要花费很久才能完成作业正适合at命令。仅需
使用at命令将任务设置在一分钟或两分钟后运行。然后你便可以安全注销,因为该任务
会与shell会话断开连接情况下执行
at 命令必须指定任务应运行的时间。该指定时间可以使具体的时间和 / 或日期(such as
星期一 10:00 或7月15日)也可以是当前时间的相对时间,现在时间加五分钟,现在
时间加上三天或者4:00pm 加上一周,也可以完成发送邮件(-m),或者从文件中读取
任务(-f 文件),而无需要通过标准输入进行
在键内输入at 命令后,按 enter 键 并继续键入作业中包含其他命令。任务可以由多个命令
组成。在完成键入要运行命令时,要在单独出现的一行中 按 ctrl d 完成任务。
at 时间 [enter]键
命令 【ctrl+d】
多久后执行什么命令
2.crontab命令的执行权力设定
/etc/cron.deny (直接在文件中写用户名) ##用户黑名单,此名单中的用户不能执行crontab命令
/etc/cron.allow ##用户白名单,此名单默认不存在,建立后所有用户均没有at命令执行权限,此名单中的用户才有crontab命令执行权限
at -l | atq 查看系统中的延迟任务
at -c 任务号 查看任务内容
atrm | at -d +任务号 取消指定任务
at now+1min 延时一分钟
at 时间 -f file 编辑一个文件,不是脚本,多久后执行文件中的内容
at -m (at命令后添加) #延时命令没有输出时也发送邮件给执行者
at -M (。。。) #延时命令即使有输出也不发送邮件给执行者
2:at 命令执行权力设定
/etc/at.deny #用户黑名单,此用户不能执行at命令
/etc/at/allow #用户白名单,此名单默认不存在,建立之后默认所有用户
都没执行at命令权限(!root)
测试:1:将student写入黑名单,
2:将student写入白名单,黑名单中没删除,但是student可以
执行at命令。说明白名单优先级高于黑名单。
batch 命令
batch命令用于指定时间,当系统不繁忙时执行任务,用法与at相似,
二:定时任务
定时任务是永久性的,与at命令不同的是它好像早上七点半的闹钟会在每天响起一样
周而复始,天地轮回,直至世界的重点。在这里,我们可以设定每周的周四,也可以选
择每天的下午茶提醒,那么,在此,我们要用到的就是crond命令,它会每分钟扫描你的
电脑一次,查看你有什么定时命令需要执行,所以,我们把它设置的精确到秒是不行的。
1:任务发起
crontab -u username -e 让username发起任务
crontab -u username -r 删除定时任务
crontab -u username -l 查看系统中定时任务
发起之后进入一个文本编辑界面,里面内容书写格式如下:
* * * * * username 命令
五个 * 分别表示 “分 时 天 月 周”
such as
2.crontab命令的执行权力设定
/etc/cron.deny ##用户黑名单,此名单中的用户不能执行crontab命令
/etc/cron.allow ##用户白名单,此名单默认不存在,建立后所有用户均没有at命令执行权限,此名单中的用户才有crontab命令执行权限
三:系统中的临时文件
系统中服务在正常运行时会产生临时文件
在系统中 /usr/lib/tmpfiles.d/ 目录下存放
系统的临时文件配置是 /usr/lib/tmpfiles.d/*.conf
自己创建的临时文件配置文件必须以.conf结尾
临时文件配置的编写方式是:
文件类型 文件名 文件权限 文件所有人 文件所有组 文件存在的时间
d /mnt/westos 777 root root 10s
##表示在/mnt目录下创建临时目录westos,并且十秒内不能被删除
systemd-tmpfiles --create /usr/lib/tmpfiles.d/* ##执行临时文件配置
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* ##清理临时文件