Linux系统延迟及定时机制
来源:互联网 发布:技嘉主板怎么样 知乎 编辑:程序博客网 时间:2024/05/16 08:02
计划定期任务
at命令可以指定某一任务在将来的特定时间运行。该作业可能是一次备份、对您系统的检查或者特定时间发送的通知。那些需要花费很长时间才可完成的作业正适合at命令。仅需使用 at 命令将任务设置为在一分钟或两分钟之后运行。然后您便可以安全注销 , 因为该任务会在与 shell 会话断开连接的情况下运行 at命令必须指定任务应运行的时间。该指定可以是具体时间或日期,也可以是当前时间的相对时间。 在键入 at 命令行之后 , 按 Enter 并继续键入作业中包含的其他命令。任务可由多个命令组成。在完成键入要运行的命令时 , 在单独出现的一行按Ctrl+d 完成任务
at命令的基本用法:
at -l #列出延迟任务id -r 任务id #删除此id的任务 -m #让无输出的命令产生邮件 -M #让有输出的命令不产生邮件 -c 任务id #查看此id的延迟任务的执行动作 -f 文件 #用文件内记录的命令作为延迟任务的执行命令
[root@wutuxing ~]# date Tue Oct 31 11:53:33 GMT 2017[root@wutuxing ~]# at 11:55at> echo hello worldat> <EOT> # ctrl+djob 1 at Tue Oct 31 11:55:00 2017[root@wutuxing ~]# at -l1 Tue Oct 31 11:55:00 2017 a root[root@wutuxing ~]# mailHeirloom Mail version 12.5 7/5/10. Type ? for help."/var/spool/mail/root": 1 message 1 new>N 1 root Tue Oct 31 11:55 14/501 "Output from your job "& 1 #输入1,查看邮件1的内容Message 1:From root@wutuxing.example.com Tue Oct 31 11:55:01 2017Return-Path: <root@wutuxing.example.com>X-Original-To: rootDelivered-To: root@wutuxing.example.comSubject: Output from your job 1To: root@wutuxing.example.comDate: Tue, 31 Oct 2017 11:55:00 +0000 (GMT)From: root@wutuxing.example.com (root)Status: Rhello world& quit #quit退出Held 1 message in /var/spool/mail/rootYou have mail in /var/spool/mail/root
[root@wutuxing ~]# at now+1minat> cd /mntat> <EOT>job 3 at Tue Oct 31 12:15:00 2017[root@wutuxing ~]# at -l3 Tue Oct 31 12:15:00 2017 a root[root@wutuxing ~]# mailHeirloom Mail version 12.5 7/5/10. Type ? for help."/var/spool/mail/root": 1 message> 1 root Tue Oct 31 11:55 15/512 "Output from your job "& #上一个任务并没有产生邮件
[root@wutuxing ~]# at -m now+1minat> cd /mntat> <EOT>job 5 at Tue Oct 31 12:20:00 2017[root@wutuxing ~]# at -l5 Tue Oct 31 12:20:00 2017 a root[root@wutuxing ~]# mailHeirloom Mail version 12.5 7/5/10. Type ? for help."/var/spool/mail/root": 2 messages 1 new 1 root Tue Oct 31 11:55 15/512 "Output from your job ">N 2 root Tue Oct 31 12:20 13/489 "Output from your job "& 2 #这里出现了mail文件Message 2:From root@wutuxing.example.com Tue Oct 31 12:20:00 2017Return-Path: <root@wutuxing.example.com>X-Original-To: rootDelivered-To: root@wutuxing.example.comSubject: Output from your job 5To: root@wutuxing.example.comDate: Tue, 31 Oct 2017 12:20:00 +0000 (GMT)From: root@wutuxing.example.com (root)Status: R&
at命令的使用控制
默认系统中全部用户
都有执行at命令的权力,那么如何设定at命令的黑白名单呢?
用户黑名单
默认情况下,系统中是存在用户黑名单的,这个名单的路径
/etc/at.deny ##用户黑名单,此名单默认为空,并且在白名单不存在时生效vim /etc/at.denystudent ##student使用at命令的权力被禁止
at命令的白名单
默认系统中是不存在at的白名单的
但是当白名单出现,系统用户除名单中出现的用户以及root
其他用户均不能执行at命令
touch /etc/at.allow #建立用户白名单,当白名单出现,黑名单失效
2 cron
管理定期任务
• cron 设备管理必须按计划定期重复运行的程序。后台程序
crond 每分钟唤醒一次 , 以运行计划的任何任务用户使用
crontab 命令计划个人任务。系统管理员可以在系统范围
配置文件中设置任务
• 单个用户使用称为 crontab ( cron 表 ) 的文本文件登记任
务
crontab 注意事项
• 属于系统的任务通常保存在 /etc/crontab 文件中而不是使
用 crontab -e 编辑保存在个人文件中。更好的做法是用文
本编辑器创建 crontab 文件并保存到 /etc/cron.d 中 ( 避
免更新系统软件包 cronie 时出现问题 ) 。
/etc/cron.d/crontab 文件在日期说明后另加一个字段 , 表
示将运行作业的用户
• 对于需要每天、每周或每月运行一次的脚本 , 可以直接将其
设置为可执行文件 , 并保存在/etc/cron.{daily,weekly,monthly}
中相应目录下。这些任务由/etc/anacrontab 配置的系统 anacron
服务运行 anacron是 cron 的集成组件 , 用于更好地管理作业 ,
并确保在作业因计算机关闭而未运行的情况下 , 在系统引导后
运行作业
2.1 cron
1)这个程序是由crond.server 提供的,我们可以先看看电脑里这个服务是否开启。
2)写入程序的时间和事件是永久保存的
2.2 cron设定方式
方法一
crontab -e -u 用户名称(可以不写)
crontab -l #列出当前用户的cron任务crontab -r #删除当前用户的cron任务/var/spool/cron/* ##cron任务记录文件存放位置
2.3 cron的黑白名单
默认情况下,系统中只存在黑名单,当白名单被建立,黑名单失效
黑名单
/etc/cron.deny ##在此名单中的用户不能执行crontabvim /etc/cron.denystudent ##student用户不能执行crontab
我们可以看到/etc/cron.deny是默认存在的,我们编辑这个文件,添加了xixi这个用户,表明限制xixi这个用户在这台电脑上使用crontab的权力,而没有在黑名单里的haha依然可以使用crontab。
注意:在切换用户的时候应该先退回到root用户再进行切换。
白名单
默认情况下,系统中只存在黑名单,当白名单被建立,黑名单失效
/etc/cron.allow ##用户白名单,当此名单出现,除root用户及名单中的用户,其他用户不能执行crontabtouch /etc/cron.allow ##建立白名单
我们可以看到,默认是没有/etc/cron.allow这个文件的,我们使用vim命令会自动创建出来这个文件并且编辑这个文件,查看文件内容,发现xixi在这个白名单里,同样的我们查询了黑名单,发现xixi也在这个名单里,那么到底哪个名单生效呢?我们切换到xixi这个用户,发现可以使用crontab。这就说明,白名单生效,黑名单失效。同样的,我们切换到haha这个用户,发现haha并不能使用crontab,这就更加说明,只有白名单里的用户可以使用crontab的权力,也就是白名单被执行,黑名单失效。
2.4.文件方式定义crontab
vim /var/spool/cron/用户名称 #以某个用户身份执行cron,文件名称必须与用户名称一致分 时 天 月 周 动作vim /etc/cron.d/文件 #设定多个用户身份cron分 时 天 月 周 用户
这个时候我们应该先将/etc/cron.deny文件清空 /etc/cron.allow文件删除,不要让这个影响到我们接下来的动作。
我们给/etc/cron.d/westos这个文件里写入两行程序,分别用root和xixi用户在/tmp目录中建立文件,我发现只能用root这个用户建立出来文件,猜测是/tmp这个目录权限的问题,于是我查询了这个目录的权限,果然如此,xixi这个其他用户在这个目录中没有执行权限,也就是无法建立文件,我更改了/tmp这个目录的权限以后,xixi这个用户就可以建立出来文件了。
作完实验,不要忘了将我们的电脑恢复成原来的样子哟~
- linux系统延迟及定时机制
- linux中系统延迟及定时机制
- Linux系统延迟及定时机制
- linux-系统延迟及定时机制
- 系统延迟及定时机制
- 系统延迟及定时机制
- 系统延迟及定时机制
- 系统延迟及定时机制
- 系统延迟及定时机制
- 系统延迟及定时机制
- 系统延迟及定时机制
- 系统延迟及定时机制
- 系统延迟及定时机制
- linux基础2-3系统延迟及定时机制
- Linux高级管理之系统延迟及定时机制
- linux管理之系统延迟及定时机制
- Linux--RH134---unit 3 系统延迟及定时机制
- 3.系统延迟及定时机制
- stm32之IO操作(基于库函数)
- vector 避免内存频繁分配释放与手动释放vector内存
- noip2012国王游戏
- Commons CLI 入门
- C语言网 问题 1083: Hello, world!
- Linux系统延迟及定时机制
- 听力
- IO流(未完结,待续)
- <Data Visualization> 数据导入导出与基本处理
- 10月份学习总结
- 转载:从头到尾彻底解析Hash表算法
- 单例模式
- 数组(八)--十进制转化为二进制
- 两个Activity加耗时操作跳转