系统延时任务------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/*可以删除创建的目录中超过生效时间的文件