LINUX系统延时及定时机制

系统延时任务------at命令

at命令可以指定某一任务在将来的特定时间运行。该作业可能是一次备份,对您系统的检查或者特定时间发送的通知。那些需要花费很长时间才可以完成的作业正苏适合at命令。仅需要使用at命令即任务设置为在一分钟或者两分钟之后运行。然后您便可以安全注销,因为该任务会在与shell会话断开连接的情况下运行。
 
at命令必须指定命令应运行的时间。该指定可以是具体的时间或者日期(例如星期一,10:00pm或者7月15日)。也可以是当前时间的相对时间(现在时间加上5分钟,现在时间加上3天或者4:00pm加上一周),通过添加其他选项,可以在任务完成时发送邮件(-m),或者从文件中读取任务(-f 文件),而无需通过标准输入进行。
 
在输入at命令之后,“ENTER”继续键入作业中包含的其他命令,任务可由多个命令组成。在完成键入要运行的命令时,在单独出现的一行“ctrl+d”完成任务。
 

1.at+具体时间

at 时间
at> 执行的命令
at>ctrl+d 执行命令
 

命令示例:在14:32删除/mnt/目录下的所有文件

 2.at 当前时间+相对时间

at now+num min
>at 执行的命令
>ctrl+d      ##开始执行命令
 

 命令示例:l

[root@localhost Desktop]# at now +2 min
at> echo "Hello from the at command" >/dev/pts/0
at> <EOT>
job 4 at 2011-08-10 14:05


 

3.查看延时任务

at -l         #查看定时或延时任务

 

4.查看详任务

at -c jobnum  #查看详细定时任务

 

5.删除任务

at -r         #删除

注意:执行at -r 后,延时任务不再执行

6.at权限设定

/etc/at.deny出现,只有在文件中出现的用户允许实现延时任务,默认是全白;

/etc/at.allow出现,只有在文件中出现的用户允许实现延时任务,默认全黑;

如果一个用户既在/etc/at.allow中,也在/etc/at.deny黑名单,则黑名单失效
root用户始终生效
在普通用户下,不能对/下的文件进行操作,没有权限
 

实验1:在/etc/at.deny文件中添加黑名单student,此时student用户权限下不能执行at命令,但是步在黑名单中的lee用户可以使用



 
 

实验2:在/etc/at.allow中添加用户白名单student,student用户权限下可以执行at命令

 

 

管理定期任务-------crontab命令

cron 设备管理必须按计划定期重复运行的程序。后台程 crond  每分钟唤醒一次 , 以运行计划的任何任务用户使用 crontab  命令计划个人任务。系统管理员可以在系统范围配置文件中设置任务,单个用户使用称为 crontab ( cron 表 ) 的文本文件登记任务

 

1.crontab命令

crontab -l     列出文件
crontab -r     删除文件
crontab -e     编辑文件(crontab -e 使用默认编辑器是 vi)
man 5 crontab  查看crontab命令的帮助

2.corn 时间表示方式

1* 2* 3* 4* 5*        command

– 1*---------- 分钟   0-59
– 2*---------- 小时   0-23
– 3*---------- 天    1-31
– 4*---------- 月    1-12
– 5*---------- 周    0-7

实验1:crontab  -e  在root用户下执行文件中的命令,创建定时任务,删除/mnt/*


 

实验2:crontab  -u student  -e  编辑student用户的定时任务,删除/home/student/*

注意:crontab -u  这个命令只有root用户才能执行,即帮助其他的用户新建或者删除crontab工作调度


 
 

crontab  -u student  -r  会把/var/spool/cron/student 这个文件删除

3.cron 权限设定

在系统中默认所有用户可以设定 cron

用户黑名单
/etc/cron.deny
在黑名单中的用户不能执行crontab 命令
但root用户可以执行crontab -u   -e 命令编辑文件并执行

实验1:在/etc/cron.deny中添加student用户


 

用户白名单
/etc/cron.allow 默认全黑

在白名单中的用户可以执行crontab命令,如果一个用户既出现在白名单中,又出现在黑名单中,则黑名单中失效

实验2:在/etc/cron.allow中添加student用户


 执行crontab -e命令编辑定时任务,删除/mnt/*


4.怎样定制系统级的定时任务

属于系统的任务通常保存在 /etc/crontab 文件中而不是使用  crontab -e 编辑保存在个人文件中。更好的做法是用文本编辑器创建 crontab 文件并保存到 /etc/cron.d 中 ( 避免更新系统软件包 cronie 时出现问题 ) 。 /etc/cron.d/crontab  文件在日期说明后另加一个字段 , 表示将运行作业的用户


对于需要每天、每周或每月运行一次的脚本 , 可以直接将其设置为可执行文件 , 并保存在 /etc/cron.{daily,weekly,monthly} 中相应目录下。这些任务由 /etc/anacrontab 配置的系统 anacron 服务运行  anacron 是 cron 的集成组件 , 用于更好地管理作业 , 并确保在作业

如果系统关闭,错过crontab的执行,则在开启系统时,anacron会检测是否有crontab漏执行,如果有则立即执行。
anacron命令检测是否有crontab漏执行,不是文件

实验1:创建系统定时任务

第一步:在/etc/cron.d/目录下建立文件westos,编辑westos文件,设置定时任务。

第二步:关闭电脑,过了设定的时间重启电脑



 
5.临时文件的清理

系统中服务在正常运行时会产生临时文件
在系统中 /usr/lib/tmpfiles.d/ 标实服务的临时文件存放位置

/usr/lib/tmpfiles.d目录下以.conf结尾的文件都是临时文件,编辑文件创建临时目录
 

控制系统中的临时文件:

systemd-tmpfiles
--create /usr/lib/tmpfiles.d/test.conf
--clean /usr/lib/tmpfiles.d/test.conf

实验1:清除临时文件

编辑test.conf文件,创建/mnt/westos目录

执行systemd-tmpfiles --create /usr/lib/tmpfils.d/*可以创建临时目录

在/mnt/westos/目录下新建文件file 和 file1

执行systemd-tmpfiles --clean  /usr/lib/tmpfils.d/*可以删除创建的目录中超过生效时间的文件




 

 

猜你喜欢

转载自blog.csdn.net/sinceNow/article/details/83746044