本文主要是介绍《鸟哥的Linux私房菜》读书笔记:crontab、at命令详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、cron例行性,隔一定周期循环执行
- crontab指令依靠服务crond的支持,除了指令,也可以编辑/etc/crontab配置文件来执行crontab。所要执行的任务记录在/var/spool/cron/中,且以账号作判别。任务执行的日志记录在/var/log/cron中
- 安全方面,通过修改/etc目录下的cron.allow与cron.deny来设定用户能进行cron工作安排与否,如果档案不存在,只有root有权利执行。系统先查看cron.allow,如果不存在,再查看cron.deny。用户不在cron.allow中,即使用户也不在cron.deny档案,也不能使用cron。如果用户不在cron.deny中,则可以使用cron。系统默认保留cron.deny文件,cron.allow需要用户自行创建,推荐保留其中一个文件即可。
- crontab语法:
crontab [-u username] [-ler]
-l:查阅所有任务
-r:移除所有任务,移除一项需用-e编辑
-e:编辑工作内容
编辑内容格式:
字段意义 | 分钟 | 小时 | 日期 | 月份 | 周 | 指令 |
---|---|---|---|---|---|---|
内容 | 0-59 | 0-23 | 1-31 | 1-12 | 0-7(0、7都表示周天) | 指令内容 |
*:代表任何时刻都接受
,:代表分隔时段,被分隔的时间都适用
-:代表一段时间范围内
/n:代表每隔n个单位执行
crontab -e
是针对使用者设计,系统的例行任务我们则编辑/etc/contab配置文件。
cron服务最低侦测限制是分钟,cron每分钟读取/etc/crontab与/var/spool/cron里面的数据内容。编辑好/etc/crontab,cron会自动来执行这个文件中的任务。如果任务不能执行,可以重启cron服务/etc/init.d/crond restart
- /etc/crontab字段中可能有
run-parts
指令,其作用是执行后面所接目录中的所有脚本 - 周和日月不可同时并存,只能分别以周或者日月为单位循环
- anacron配和/etc/anacrontab 的设定,可以唤醒停机期间系统未进行的crontab任务
二、at突发性,只执行一次
- at指令依靠服务atd支持,/etc/init.d/atd restart开启服务,chkconfig atd on设置开机启动,所要执行的任务以文本形式记录在/var/spool/at/目录中,由服务atd执行。
- 安全方面,通过修改/etc目录下的at.allow与at.deny来设定用户能进行at工作安排与否,如果档案不存在,只有root有权利执行。系统先查看at.allow,如果不存在,再查看at.deny。用户不在at.allow中,即使用户也不在at.deny档案,也不能使用at。如果用户不在at.deny中,则可以使用at。
- at命令格式:
at [-lmdv] Time
at -c jobNum #查看该工作指令内容
atq #查询所有at任务
atrm jobNUM #删除任务
batch #系统不忙碌时再执行(CPU负载小于0.8),用法与at一样,也用atq/atrm管理
-m:at shell中即使没有输出信息,也可以使用邮件通知执行者
-l:查看当前用户所有at工作
-d:取消一个at工作
-v:以明显的时间格式查看at任务
- 注意事项:at的执行和终端机环境无关,所有的标准输入输出都会发送到执行者的邮件箱中。想看见标准输出信息,可以使用echo “String” > /dev/tty[123456]
这篇关于《鸟哥的Linux私房菜》读书笔记:crontab、at命令详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!