《鸟哥的Linux私房菜》读书笔记:crontab、at命令详解

来源:互联网 发布:三层交换机端口配置ip 编辑:程序博客网 时间:2024/06/06 04:31

一、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] Timeat -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]
0 0
原创粉丝点击