第三单元:系统延迟及定时机制
一、计划定期任务--at命令
1.at 命令可以指定某一任务在将来的特定时间运行。该作业可能是一次备份、对您系统的检查或者特定时间发送的通知。那些需要花费很长时间才可完成的作业正适合at 命令。仅需使用 at 命令将任务设置为在一分钟或两分钟之后运行。然后您便可以安全注销 , 因为该任务会在与 shell 会话断开连接的情况下运行
2.at 命令必须指定任务应运行的时间。该指定可以是具体时间和 / 或日期 ( 例如星期一 , 10:00pm 或 7 月 15 日 ) 。也可以是当前时间的相对时间 ( 现在时间加上 5 分钟 , 现在时间加上 3 天或 4:00pm 加上1 周 ) 通过添加其他选项 , 您可以在任务完成是发送邮件 ( -m ), 或者从文件中读取任务 ( -f 文件 ), 而无需通过标准输入进行
3.在键入 at 命令行之后 , 按 Enter 并继续键入作业中包含的其他命令。
任务可由多个命令组成。在完成键入要运行的命令时 , 在单独出现的一
行中按 Ctrl+d 完成任务
4.示例
[root@serverX ~]# at now +2 min
at> echo "Hello from the at command" >
/dev/pts/0
at> <EOT>
job 4 at 2011-08-10 14:05
示图:示例结果
注 :
atq ##列出作业编号
at -c 作业编号 ##查看指定作业编号的内容
atrm 作业编号 ##删除指定作业编号
示图:删除指定作业编号
5.黑白名单
/etc/at.deny ##目录中原有存在的,在此文件中写入用户后,该用户不可以使用at进行操作,去他用户都可以
示图:黑名单文件内容
/etc/at.allow ##目录中原来不存在的,需要自己建立,在此文家安中写入用户后,只有该用户可以使用at命令,其他用户都不可以。当黑白用户文件都存在时,系统只会识别白名单内容
示图:白名单文件内容
二、管理定期任务
1.cron 设备管理必须按计划定期重复运行的程序。后台程序crond 每分钟唤醒一次 , 以运行计划的任何任务用户使用crontab 命令计划个人任务。系统管理员可以在系统范围配置文件中设置任务2.单个用户使用称为 crontab ( cron 表 ) 的文本文件登记任
务【可搭配使用】
• crontab -l 列出文件
• crontab -r 删除文件
• crontab -e 编辑文件,使用默认编辑器是 vi
• crontab -e -u student 以普通用户student的发起者编辑文件
示图:文件内容
示图:执行结果
3.表示方式
1* 2* 3* 4* 5* command
– 1*---------- 分钟
– 2*---------- 小时
– 3*---------- 天
– 4*---------- 月
– 5*---------- 周
示例:
05 * * * * ##每小时整点过5分钟
05 02 * * * ##每天2:05am
30 08 01 * * ##每月第一天8:30pm
00 07 25 12 * ##12月25日7:00am
30 16 * * 5 ##每个星期五4:30pm
*/5 * * * * ##每五分钟(0、5、10...45、50、55)
*/10 9-17 1,15 * * ##在每月的第一天和第十五天9:00am到5:00pm之间(在5:00pm不会运行,:最后一次运行是4:50pm)每隔十分钟
0 0 1 jan 0 ##1月1日午夜和1月的每个星期日(不仅是1月1日所在的星期日)
4.crontab注意事项
1> 属于系统的任务通常保存在 /etc/crontab 文件中而不是使用 crontab -e 编辑保存在个人文件中。更好的做法是用文本编辑器创建 crontab 文件并保存到 /etc/cron.d 中 ( 避免更新系统软件包 cronie 时出现问题 ) 。
/etc/cron.d/crontab 文件在日期说明后另加一个字段 , 表示将运行作业的用户,只有超级用户可写
示图:文件内容
示图:执行结果
2> 对于需要每天、每周或每月运行一次的脚本 , 可以直接将其设置为可执行文件 , 并保存在 /etc/cron.{daily,weekly,monthly} 中相应目录下。这些任务由/etc/anacrontab 配置的系统 anacron 服务运行 anacron是 cron 的集成组件 , 用于更好地管理作业 , 并确保在作业因计算机关闭而未运行的情况下 , 在系统引导后运行作业
示图:系统脚本
5.cron权限设定
在系统中默认所有用户可以设定 cron
• 用户黑名单
– /etc/cron.deny
• 用户白名单
– /etc/cron.allow
同at用法
三、控制系统中的临时文件
2.在系统中 /usr/lib/tmpfiles.d/ 标实服务的临时文件存放位置
3.文件示例
vim /usr/lib/tmpfiles.d/tmp.conf
d /var/tmp 1777 root root 30d
示图:
4.控制系统中的临时文件
systemd-tmpfiles --create /usr/lib/tmpfiles.d/test.conf ##加载更新所有配置的临时文件
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/test.conf ##晴空临时文件内容
示图: