Linux的任务计划

Linux的任务计划

        我们在使用系统的过程中,经常需要在以后的某个时间点执行一个任务,而我们又不在机器旁边的时候,比如在半夜时服务器访问的用户很少,宽带资源很充足的时候,要去镜像软件包、重启服务器(虽然Linux很稳定)等,或者需要服务器在每天的特定时间去备份数据库或者做其它周期性的任务。

        这时就需要任务计划去满足我们的需求,在Linux中任务计划分为一次性任务计划和周期性任务计划,只在某个时间点执行一次的任务计划,比如:下载镜像、重启服务器等就用一次性任务计划。而需要周期性、重复执行的任务就用周期性任务计划。

        一次性任务用at命令,而周期性任务计划用crontab命令

        at命令的用法很简单,在命令后跟上一个时间点回车后在at>提示符后输入需要执行的命令,按ctrl+d提交任务即可。

        如:在5分钟后执行一次echo命令

        Linux的任务计划

        创建任务后如何查看?使用如下命令就可以:

        #at -l atq

        Linux的任务计划

        任务创建后想要删除怎么办?更简单,使用-d选项加上要删除的任务编号即可。如删除刚刚创建的任务计划

        #at -d #

        Linux的任务计划

        但这样一次一条或多条命令输入时不觉得麻烦吗?没关系at很贴心的为你设计了批处理模式,让你一次可以创建多项任务,在使用时需要先准备一个文件,在文件中写入要执行的命令。然后通过-f选项去读取这个文件。比如:在家目录下用vim编辑一个文件,在文件中写入要执行的命令,echo “hello”,ls -l /etc/,当然你可以输入更多的命令。然后保存文件名为at.txt的文件。接着再用at -f ~/at.txt 16:00去执行即可。如下图

        Linux的任务计划

        前面提到的时间点有:now、noon(正午)、midnight(午夜)、teatime(pm4:00)、tomorrow,当然你也可以使用精确的时间,如15:00等。

        任务计划执行结果会通过邮件发送给任务提交者,查看邮件时,使用#mail命令,然后输入相应的邮件编号就可以查看邮件内容。如下图:

        Linux的任务计划

        是不是很简单?那么再接着来看看crontab命令。crontab是用来创建周期性任务计划的。也就是说那些需要重复执行的任务就需要用到它,那它是如何实现周期性的呢?在系统中有一个叫crond的守护进程。就是因为它的存在,才得以让我们可以很放心的把这么重要的任务交给它去执行。而cron又分为系统cron和用户cron

        系统cron/etc/crontab文件中有其详细定义,只要我们按照这个格式去创建任务计划。系统就能很愉快的工作。那么它的格式是什么呢?请看下图:

        Linux的任务计划

        有没有觉得晕?没关系,其实它已经很明确的告诉你要怎么去创建一个任务计划了。但这里我们只是去看这里的字段都是一些什么含义,而不建议去直接修改这个文件。具体什么原因你懂的,Linux可不会阻止你自杀的。比如:rm -rf /这个命令你可以很轻松的去执行,但后果可是很严重的。下面说说里面字段的含义:

        SHELL=/bin/bash:用于解释执行任务计划里面的命令的解释器

        PATH=/sbin:/bin:/usr/sbin:/usr/binPATH环境变量,shell执行命令时会以这些路径下去寻找命令的路径。

        MAILTO=root:任务计划的结果发送给谁。

        下面的5*号从左至右分别代表的是分、时、日、月、周。紧接着的是要执行的命令,在写命令时建议使用命令的绝对路径,以免在执行时不能正确解释执行。

        那我们要怎样去定义一项任务呢?在这之前先说说*号的有效取值范围以及如何去表示它们:

            1.每个时间位都应该使用其可用的有效取值范围内的值;

            2.某时间位上的*号表示对应位的所有有效取值;

            3.-:连续的时间点取值,如:30-35 7 * * *

            4.,:离散的时间点取值,如:5,35 * * * *

            5./#:表示在指定范围时间内每隔#一次,如:5-45/3 * * * *

        在此文件中每一行表示一个独立的任务。

        用户cron是普通用户和管理员(强烈建议用此种方式创建任务计划)以安全的方式创建任务计划的,因为在保存退出后,crontab命令会检查命令是否有语法错误。创建成功后会在/var/spool/cron/目录下创建一个同用户名的文件。而crontab的用法也很简单,在命令后跟上-e 选项就可以创建任务计划。

        例:每周246的凌晨302分把/etc目录下的文件备份至/backup目录下并以etc_开头后面跟上当天的日期。而后保存即可(友情提示:在命令中使用%时,要记得转义,或者用引号。)。如下图:

        Linux的任务计划

        查看自己的cron任务列表,使用-l选项。如下图就是刚刚创建的任务计划。

        Linux的任务计划

        那么要删除任务计划怎么办?对此我们直接用crontab -e去编辑/var/spool/cron/目录下的文件。如果连这个文件都不想要了?那好办,执行crontab -e后这个文件就被删除,从此一切烦恼就随往事烟消云散了。

        当然身为管理员无时无刻不体现着特权,使用-u选项还可以别的用户创建任务计划。请看下图

        Linux的任务计划

        上图创建了一个每天6、9、12、15、18点查看当前系统挂载的所有文件系统,并将结果追加至/tmp/mounts.txt文件中的任务。

        -u选项还可以配合-l-r选项实现查看和移除任务计划。

        如果我们创建的任务计划在某天不能正常的执行,比如系统宕机、重启等,别担心还有一个小工具:anacron

        anacroncron的补充,它的主要功能就是去检查crontab中的任务在过去的一个周期内是否有成功执行。如果没有执行,则在开机以后在系统的某个时间点内让其执行一次,无论周期是否到达。

        anacron很完美的解决了我们的忧虑。

原创文章,作者:人字拖,如若转载,请注明出处:http://www.178linux.com/71377

(0)
人字拖人字拖
上一篇 2017-03-19 20:52
下一篇 2017-03-19 23:40

相关推荐

  • 实战演练su命令与sudo服务

    su和su- 切换方式 实例: sudo 提权 sudo的特色功能 sudo命令的常用参数 注意 案例1——允许zhanghe用户执行所有命令: 案例2——仅允许linuxprobe用户以root用户身份执行cat命令。 案例3——允许linuxprobe用户以任意身份执行命令,且每次都不需要密码验证。 su命令与sudo服务 在工作生产环境中不要去使用ro…

    Linux干货 2016-09-05
  • CentOS7下利用rsyslog+loganalyzer配置日志服务器及Linux和windows客户端配置

    随着机房内的服务器和网络设备增加,日志管理和查询就成了让系统管理员头疼的事。 系统管理员遇到的常见问题如下: 1、日常维护过程中不可能登录到每一台服务器和设备上去查看日志; 2、网络设备上的存储空间有限,不可能存储日期太长的日志,而系统出现问题又有可能是很久以前发生的某些操作造成的; 3、在某些非法入侵的情况下,入侵者一般都会清除本地日志…

    2017-03-15
  • iptables基础详解

    一.iptables基础认知二.iptables使用格式  一.iptables简介   1.Iptabels是与Linux内核集成的包过滤防火墙系统,几乎所有的linux发行版本都会包含Iptables的功能。如果 Linux 系统连接到因特网或LAN、服务器或连接 LAN 和因特网的代理服务器, 则Iptables有利于在 …

    2017-05-03
  • Linux的启动流程

    启动流程  POST: Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内存、硬盘子系统、显示子系统、 串并行接口、键盘、 CD-ROM光驱等硬件情况的检测。 ROM: BIOS, Basic Input and Output System,保存着有关计算机系统最重要的基本输入输出程序,系统信息设置、 …

    Linux干货 2016-09-13
  • SRE管理职责简介

    读书笔记 摘要 SRE是Site Reliability Engineer的简称,从名字可以看出Google的SRE不只是做Operation方面的工作,更多是保障整个Google服务的稳定性。 SRE管理职责简介 监控系统 警报 工单 日志 应急事件处理 变更管理 预测需求和规划容量 资源部署 小结 监控系统 监控系统是 SRE 团队监控服务质量…

    Linux干货 2017-04-03
  • 第一周随记。

    始 .仲夏之末  ———随记心情 去年仲夏我在郑州富士康过着自己不喜欢的日子,做着自己不情愿做的事情。 有可能回到学校的日子才是我最想要的吧。 五月的骄阳也是那么炙热,缓缓升起,就像想穿进我们宿舍普及到每个人身上,然宿舍有空调岂会怕你这点小小余辉。 总感觉脑子里始终有一种什么意念在召唤着我,原来该上课了…

    Linux干货 2017-07-15