【26期】Linux第九周学习小总结

本周带来的是慢慢的技术分享,有关于计划任务的分享,涉及的知识点主要是at和cron,crontab的详解,计划任务可以将任何脚本、程序或文档安排在某个最方便的时间运行,有利于我们的自动化运维,当某项任务多次重复,或者某个指定的时间点多次执行时,就可以使用计划任务方便我们的工作。

计划任务不是有只linux 才有的技术,windows中我们亦可以通过控制面板–>管理工具–>任务计划程序,找到对应的任务计划程序,我们可以在任务计划程序库中的列表中看到,我们的windows中也有很多默认的任务计划程序,它们会在指定的时间或者满足条件的时候执行,可以指定执行一次,多次,循环式的帮我们的windows的稳定默默地帮助,那么我们的linux有没有那么智能呢?

我们学习的linux与计划任务的命令有at、corn和corntab。

at: 未来的某时间点执行一次任务

用法:at [option] TIME

[option]

          -V 显示版本信息

          -l:查看计划任务列表;相当于atq

          -d:删除指定的作业;相当于atrm

          -c 编号:查看计划任务详细内容

          -f 文件:调用文件中的命令进行任务

         -m:当任务被完成之后,将给用户发送邮件

     TIME:定义出什么时候进行 at 这项任务的时间

     HH:MM [YYYY-mm-dd]  若该时刻已过,则明天此时执行任务

     noon, midnight, teatime( 4pm) tomorrow now+#{minutes,hours,days, OR weeks} :这些都是一些通用的时间

     我们熟悉了一些at的使用选项,那我们开始实战一下吧,我们的计划任务是:在五分钟后执行广播,系统将在五分钟后关闭。

    01

02

我们可以看到我们time是now+5min,就是说当我们退出编辑模式的一瞬间开始计算,而且我们的这个五分钟后都是指的是从当前这一分钟开始的,当我在练习的时候经常会使用,一分钟完成某些操作,就会有刚完成编辑,突然就开始执行的情况,同样使用时间HH:MM这样的格式,也会碰到那种,错过当前时间的事情,只能等明天了才能执行,或者删除任务重新开始写我们的计划任务。

03

然后我们是用at -l可以查看我们任务计划的列表,上面我通过红色笔划着的三个框框,第一个框框9值得是这个任务的编号,第二框框14:46:00指的是任务将要执行的时间爱你,最后的root是指任务的新建执行人是谁,如果希望了解更详细的可以使用at -c来查询详细信息!

04

05

其实看着很长的一段文字,也就是最后的一点有用就是查看我们的计划任务的执行信息,也可以通过文件的方式来查询:/var/spool/at/ 这个目录下存放着我们at的临时文件,当我们生成任务是,会自动生成任务文件,当任务执行结束时,则自动删除文件。

黑白名单

/etc/at.{allow,deny}控制用户是否能执行at任务
白名单:
/etc/at.allow 默认不存在,只有该文件中的用户才能执行at命令
黑名单:
/etc/at.deny 默认存在,拒绝该文件中用户执行at命令, 而没有在at.deny 文件中的使用者则可执行
如果两个文件都不存在,只有
root 可以执行 at

好了,今天的重点不在于at,而是在于我们的cron

确保crond守护处于运行状态:

CentOS 7:
systemctl status crond
CentOS 6:
service crond status

系统cron任务:系统维护作业
    /etc/crontab
用户cron任务:
   crontab命令

 日志: /var/log/cron:用来监控我们的cron的每个操作配合tail -f执行

既然我们的系统任务在/etc/crontab中那我们查看一下这个文件

06

时间表示法:
(1) 特定值
给定时间点有效取值范围内的值 

(2) *
给定时间点上有效取值范围内的所有值
表示“每
…”
(3) 离散取值
#,#,#
(4) 连续取值
#-#
(5) 在指定时间范围上,定义步长
/#: #即为步长 :这个步长指得是我们通过多长时间来执行一次比如在第一位的分钟上*/5,就是每五分钟一次

同时还给予了我们一些便利的时间格式:

@reboot Run once after reboot.
@yearly 0 0 1 1 *
@annually 0 0 1 1 *
@monthly 0 0 1 * *
@weekly 0 0 * * 0
@daily 0 0 * * *
@hourly 0 * * * *

用户命令crontab:
crontab命令定义,每个用户都有专用的cron任务文件:/var/spool/cron/USERNAME
         crontab命令:
         用法:crontab [-u user] [-l | -r | -e] [-i]

        选项:
-l:
列出所有任务;
             -e: 编辑任务;
             -r: 移除所有任务;
             -i:同-r一同使用,以交互式模式移除指定任务
             -u user: root可运行,指定用户管理cron任务
控制用户执行计划任务(黑白名单):/etc/cron.{allow,deny}

注意:没有被重定向的输出会被邮寄给用户,不管是我们的at还是cron,crontab都是一样,如果有输出,就会被发mail通知用户

作业小练习:

 1、每天的2点和12点整,将/etc备份至/testdir/backup目录中,保存的文件名称格式为“ etcbak-yyyy-mm-ddHH.tar.xz”
 2、每周2, 4, 7备份/var/log/messages文件至/logs目录中,文件名形如“ messages-yyyymmdd”
 3、每两小时取出当前系统/proc/meminfo文件中以SM开头的信息追加至/tmp/meminfo.txt文件中
 4、工作日时间,每10分钟执行一次磁盘空间检查,一旦发现任何分区利用率高于80%,就执行wall警报  07

08

我的练习用了两种方法来实现,一种是直接把命令写在里面,不够要注意%,要转义使用,第二种方式是直接写入我们的shell脚本里,能够有很好的修改性,扩展性。

好了,今天的分享就到这里了,除了技术的分享,我还要吐槽一下这个编辑器,tab键被吃了吗!!!!!!!!!!!!!!!!

你知道缩进多难受吗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/86627

(0)
努力!奋斗!努力!奋斗!
上一篇 2017-09-09 11:17
下一篇 2017-09-09

相关推荐

  • class9 bash编程基础(一)

    一、编程基础 程序:指令+ 数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell 程序:提供了编程能力,解释执行 程序的执行方式 计算机:运行二进制指令; 编程语言: 低级:汇编 高级: 编译:高级语言–> 编译器–> 目标代码   &n…

    Linux干货 2016-08-15
  • linux命令查找locate find要点

           在文件系统上查找符合的文件        locate, find locate:          依赖于事先构建好的索引库:             &…

    Linux干货 2016-11-07
  • bash编程初体验(二)

    bash编程初体验(二) read if case 概述 在本篇文章中,我们将介绍bash编程中有关if语句的简单用法,if语句的基本思路是判断给定的条件是否满足,即结果是真还是假,从而选择执行哪种操作。如此,如果条件为真,if会执行一种指令,如果条件为假,if会选择执行另一种指令,这种执行就是所谓的选择结构,它能够改变命令的基本顺序流结构,以选择流的形式运…

    Linux干货 2016-08-19
  • Linux基础之正则表达式,用户、组管理

    Linux基础—正则表达式 正则表达式简单来说就是一种行字符串处理的方式,通过一些特殊符号的辅助,可达到搜索、删除、替换等某些特定字符串的处理方式 通配符(Globbing) 通配符与元字符类似,通配符主要用于文件名的匹配,而元字符则主要用在字符串的匹配上; 下面介绍几种常用的通配符: * 表示匹配任意位数的任意字符 ? 表示…

    Linux干货 2016-10-03
  • 谈谈对于vmware Workstation 网络连接三种模式的认识.

    简介: VM(VMware Workstation简称VM,后面都将用VM代替阐述)是一款功能强大的虚拟化软件.VM支持在 单一的桌面上同时运行多款不同的操作系统,能够模拟完整的网络环境,支持pxe功能.实时快照,等等多种强 大的功能.能够测试软件和部署新的业务测试.同时节约了很多资源.节约了企业成本.所以对于广大的互联网 从业者是不可多得的好工具. 本文中…

    Linux干货 2015-08-24
  • 编译安装dropbear和使用

    一、概念 Dropbear是一个相对较小的SSH服务器和客户端。它运行在一个基于POSIX的各种平台。 Dropbear是开源软件,在麻省理工学院式的许可证。 Dropbear是特别有用的“嵌入”式的Linux(或其他Unix)系统,如无线路由器。 二、功能 dropbear实现完整的SSH客户端和服务器版本2协议。它不支持SSH版本1 的向后兼容性,以节省…

    Linux干货 2016-10-04