在linux系统中,敲出一行代码会立刻执行,我们时希望在一定的时间后或者在特定的时间执行一些命令,这就需要linux系统的延时和定时命令
一.系统延时任务
1.at命令
#at 命令发起的时任务都是一次性的
at+时间 ##指定命令执行的时间
[root@server mnt]# at 20.51 ##20:51执行命令
at> rm -fr * ##命令--删除所有能容
at> <EOT> ##按ctrl+d ,结束命令
at -l ## 查看当前任务
at -d 3 ## 取消还未执行的任务(3:at -l所看到的任务号)
atrm 4 ##取消还未执行的任务(4:at -l所看到的任务号)
at now+1 ##延时1分钟执行
at -f ##延时执行文件中的内容
at -m ##延迟命令没有输出的情况下发邮件给执行者
at -M ## 延迟命令没有输出的情况下不发邮件给执行者
实验:延时1分钟,在/mnt目录下创建一个名位ccj的文件
2.at命令的执行权力设定
黑名单:
/etc/at.deny ##用户的黑名单,在此名单中出现的用户不能执行at命令
白名单:
/etc/at.allow ##用户的白名单,一般不存在,需要自己创建。
##如果白名单一旦存在,系统中所有的用户默认不能执行at命令,只有在名单中出现的用户可以使用at命令
二、定时任务
##定时任务是永久的
1.方法1
crontab -u username -e ##编写定时任务
crontab -u username -r ##删除定时任务
crontab -u username -l ##查看定时任务
* * * * * ##每分钟
*/2 * * * * ##每两分钟
*/2 09-17 * * * ##早7-晚5每两分钟
*/2 */2 * * * ##每隔2小时每两分钟
*/2 09-17 3,5 1 5 ##3月和5月每周周五及3月1日和5月1日每两分钟
*/2 09-17 * * 5 ##每周周五早9晚5每两分钟
一共是五个星号:
1:分钟
2:小时
3:天
4:月
5:周
2.方法2
vim /etc/cron.d/filename
* * * * * root rm -rf /mnt/* ##root用户每分钟清理一次/mnt/
3.crontab命令的执行权力设定
/etc/cron.deny ##用户黑名单,在此名单中出现的用户不能执行crontab命令
/etc/cron.allow ##用户的白名单,一般不存在,需要自己创建。
##如果白名单一旦存在,系统中所有的用户默认不能执行crontab命令,只有在名单中出现的用户可以使用crontab命令
三.系统临时文件的管理
系统中,服务在正常运行中都会产生临时文件 ,临时文件的配置文件所在的目录/usr/lib/tmpfiles.d/,都是以conf后缀名
10
vim /usr/lib/tmpfiles.d/*.conf ##新的临时文件的配置文件
d /mnt/ 777 root root 10s
文件类型 临时文件所在的目录 权限 拥有人 所属组 文件存在的时间
systemd-tmpfiles --create /usr/lib/tmpfiles.d/mnt.conf ##执行配置文件内容
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/mnt.conf ##清理临时文件