Blog13@linux延迟、定时任务介绍及临时文件时间更改

本文介绍了Linux系统中at和cron两种任务调度工具的使用方法,包括at命令的执行流程、参数详解、用户权限管理,以及cron任务的设定方式、基本参数和黑白名单设置等。此外还介绍了如何管理和设置临时文件的有效期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要:延迟、定时任务介绍及临时文件时间更改

一、at延迟执行任务命令(临时性)

1.at命令执行流程

#at 2:00 tomorrow
at>Ctrl+D
at time 中时间的一些表示方法:
例:
at now+5min 
at now+5hours
at now+5days
at now+5weeks
at now+5months
at now+5years
at midnight
at 10:30pm
at 22:30 12/31/2017


2.at命令的参数详情

at -l / atq                 #列出延迟任务id
at -r  任务id /atrm+任务id   #删除此id 任务
at -m                       #让无输出的命令产生邮件
at -M            #让有输出的命令不产生邮件
at -c  任务id     #查看此id任务的执行动作
at -f  文件       #用文件内记录的命令作为延迟任务的执行命令
注:一般只有输出的命令才会有邮件

 

实操如下:

############atq,at -l/-r/-c3########### 
[root@client ~]# at 2:00 tomorrow --->明日两点执行如下命令
at> touch file{1..3} 
at> date
at> <EOT>
[root@client ~]# atq      
1    Tue Oct 31 02:00:00 2017 a root
[root@client ~]# at -l
1    Tue Oct 31 02:00:00 2017 a root
[root@client ~]# at -c 1
...(省略中间内容)
touch file{1..3}
date
[root@client ~]# at -r 1
[root@client ~]# atq

##################at -m/M#################
注:
已知touch file /mnt/file1为无输出命令
date为有输出命令
[root@client ~]# at now+1min
at> touch /mnt/file1
at> date
at> <EOT>
job 6 at Mon Oct 30 09:24:00 2017
[root@client ~]# mail
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/root": 1 message 1 new
>N  1 root                  Mon Oct 30 09:24  14/506  -->mail邮件中只显示了date执行过的命令
& q
Held 1 message in /var/spool/mail/root
You have mail in /var/spool/mail/root
[root@client ~]# >/var/spool/mail/root -->清空mail邮件
[root@client ~]# at  now+1min
at> touch /mnt/file
at> <EOT>
job 17 at Mon Oct 30 10:18:00 2017
[root@client ~]# at  now+1min
at> date
at> <EOT>
job 18 at Mon Oct 30 10:18:00 2017
[root@client ~]# mail
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/root": 1 message 1 new
>N  1 root                  Mon Oct 30 10:18  14/503  
& q               ---------->邮件中只了显示date命令的执行 
Held 1 message in /var/spool/mail/root
[root@client ~]# atq
[root@client ~]# >/var/spool/mail/root
[root@client ~]# at -m now+1min
at> touch /mnt/file6
at> <EOT>
job 19 at Mon Oct 30 10:19:00 2017
[root@client ~]# at now+1min
at> date
at> <EOT>
job 20 at Mon Oct 30 10:19:00 2017
[root@client ~]# mail
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/root": 2 messages 2 new
>N  1 root                  Mon Oct 30 10:19  13/474   
 N  2 root                  Mon Oct 30 10:19  14/503   
& q     --------->邮件中显示了date及touch /mnt/file6 的执行
Held 2 messages in /var/spool/mail/root
[root@client ~]# >/var/spool/mail/root
[root@client ~]# at -M now+1min
at> touch file1
at> <EOT>
job 21 at Mon Oct 30 10:24:00 2017
[root@client ~]# at -M now+1min
at> date
at> <EOT>
job 22 at Mon Oct 30 10:25:00 2017
[root@client ~]# atq
[root@client ~]# mail  -->mail邮件中无执行历史

注:若发现在/mnt/下建立文件无显示,请查看并修改/mnt权限

3.at用户黑白名单

##用户黑名单默认情况下,系统中是存在用户黑名单的,这个名单的路径如下/etc/at.deny  ##用户黑名单,此名单默认为空,并且在白名单不存在时生效

##at用户白名单默认系统中是不存在at的白名单的,但是当白名单出现,系统用除名单中出现的用户以及root用户其他用户均不能执行at命令

 touch /etc/at.allow  ##建立用户白名单,白名单一旦出现,黑名单失效 vim /etc/at.allow注:删除/etc/at.allow白名单,其即会失效

二、cornat定时执行任务命令(永久性)

1.这个程序是由cond.service 服务提供,且写入程序的时间和事件是永久保存的

2.cron设定方式

法一

crontab -e -u用户名称(可以不写)
分钟 小时    天    月    周         事件
58   06      *     *     *     rm -rf /mnt/*  #每天6:58分删除/mnt中的内容
58   06     1,15   *     *     rm -rf /mnt/*  #每月一号和每月15号的6:58分删除/mnt中的内容
58   06     1-15   *     *     rm -rf /mnt/*  #每月一号到每月15号的6:58分删除/mnt中的内容
58   06     1,15   3     *     rm -rf /mnt/*  #3月的1号和15号的6:58分删除/mnt中的内容
58   06     1,15   3     3     rm -rf /mnt/*  #3月的1号和15号及3月的所有周三的6:58分删除/mnt中的内容
58   06-17   *     *     *     rm -rf /mnt/*  #6-17点,每隔1小时
*/30 06-17   *     *    1-5    rm -rf /mnt/*  #周一到周五的早上6点到下午5点每隔半小时执行



法二:

文件方式定义crontab

1)

注:/var/spool/cron/*  ##cron任务记录文件的存放位置
vim /var/spool/cron/用户名称  #以某个用户的身份执行cron,文件名称必
须和用户名一致
分    时    天    月    周    动作


2)

vim /etc/cron.d/文件  #设定多个用户身份执行cron
分    时    天    月    周    用户    动作
实操:
[root@client ~]# vim /etc/cron.d/RS

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

3)脚本方式

cat cron.sh
#!/bin/bash
cat >> /etc/cron.d/westos <<Sunshine
*****root touch /tmp/file{1..3}
*****student touch /tmp/file{4..6}
Sunshine

实操:
[root@client cron.d]# vim cron.sh

[root@client cron.d]# sh cron.sh
[root@client cron.d]# watch -n 1 ls -l /mnt

3.corntab的基本参数详情

crontab -l #列出当前用户的cron命令
crontab -r #删除当前用户的cron命令

实操如下:
[root@client ~]# crontab -e
crontab: installing new crontab
[root@client ~]# crontab -e -u student
crontab: installing new crontab
[root@client ~]# crontab -l
* * * * * touch /mnt/file{1..3}
[root@client ~]# crontab -u student -l
* * * * * rm -rf /mnt/file{1..3}


4.cron的黑白名单

默认情况下,系统中只存在黑名单,当白名单建立,黑名单失效

#黑名单
/etc/cron.deny  ##在此名单下的用户不能执行crontab
#白名单
/etc/cron.allow   #用户白名单,当此名单出现,除root用户及名单中的用户其它的用户不能执行crontab

三、临时文件时间修改

关于/tmp文件,想必大家都有所耳闻,
其作用:让一般用户或者正在执行的程序暂时存放文件的地方。这个目录任何人都可以访问,所以需要定期的清理。当然重要的数据不可放置在此目录。因为FHS甚至建议在开机时,应该要将/tmp下的数据清理一下。
为了能够更好地管理临时文件的存留,其当然有固定的存在时长。那么,在此时间内,其文件不可被清理。而这个存在的时长也可被更改。其更改在如下配置文件:

[root@client ~]# vim /usr/lib/tmpfiles.d/tmp.conf

那么我们是否可以将自己建立的一些临时文件存放在固定的目录内?
答案是肯定的。
为了方便区分并管理自己建立的这些临时文件存放的目录,

实际操作过程如下:

[root@client ~]# vim /usr/lib/tmpfiles.d/westos.conf


[root@client ~]# systemd-tmpfiles --create /usr/lib/tmpfiles.d/*
[root@client ~]# cd /mnt/westos/
[root@client westos]# touch file{1..3}


[root@client westos]# systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*


[root@client westos]# systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值