chapter16:例行性工作(crontab)之二:循环执行的例行性工作调度

  循环执行的例行性工作调度是由cron(crond)这个系统服务来控制的,这个服务是系统默认启动的。Linux也提供用户控制例行性工作调度的命令crontab。

一。用户设置

  为了安全起见,我们可以限制能够使用crontab的用户。同at类似,用两个文件进行设置,/etc/cron.allow,/etc/cron.deny。

  当用户使用crontab这个命令的来新建工作调度后,工作就会被记录到/var/spool/cron里面。而且是以帐号来作为判别的。如chuiyuan在使用这个从后,工作会记录到/var/spool/cron/chuiyuan。不要使用vim来编辑这个文件,因为可以出错。

crontab语法

crontab [-u username] [-l |-e |-r]

-u:只有root才可以用,也就是帮助其它用户建立crontab工作调度。

-e:编辑crontab的工作内容。

-l:查看

-r:删除所有的,如果想只删除一项,则使用-e来编辑。

二。系统的配置文件/etc/crontab

  上面的crontab -e是对用户的cron来设计的,里面的crontab实际是/usr/bin/crontab这个可执行文件,如果是系统的例行性工作时,则编辑/etc/crontab这个文件,这是一个文本文件。

  基本上,cron这个服务检测的时间是分钟,所以cron每分钟都会去读取一次/etc/crontab与/var/spool/cron里面的内容。因此当我们修改完/etc/crontab这个文件后,cron就会自动来执行。

要注意的是,有的系统可以是将crontab读取到了内存中,因此在修改后请重启下crond这个服务。  先看看/etc/crontab这个文件的内容

我们可以自己修改这个文件,由于centos有 run-parts(一个bash scripts,运行后面接的目录下的所有可执行文件)这个命令。所以/etc/crontab这个文件支持两种方式的执行,

一种是直接命令执行,一种是以目录来规划。

三。可唤醒停机期间的工作任务

  如果主机是24小时不关机的,那么我们只要有at与crond两个服务来管理我们的例行性工作调度就可以了,如果不是24小时不关机,则要有anacron程序(不是服务)。它并不是用来替代crontab,而是以天为单位或者是在开机后立刻执行anacron这个操作。它会去查看在停机期间没有进行的crontab任务,并将这个任务执行一次,然后anacron就自动停止了。所以anacron其实也是通过crontab来运行的,因此它的运行时间通常有两个,一个是系统开机时,一个是写入crontab的调度中。

anacron这个程序在centos中已经进入crontab的调度,查看如下

接下来我们看看/etc/anacrontab里面的内容

时间: 2024-12-23 11:29:16

chapter16:例行性工作(crontab)之二:循环执行的例行性工作调度的相关文章

chapter16:例行性工作(crontab)之一:什么是例行性工作与实际运行单一工作调度

一.什么是工作高度各类:at,cron Linux中,有两种工作高度功能, (1)at:可以处理只执行一次就结束的命令,不过要执行at时,要有atd的支持,CentOS中是自带的. (2)crontab:设置的工作将会一直循环进行下去,crontab除了可以使用命令行执行外,还可以修改/etc/crontab来支持.让crontab生效的服务则是crond这个服务. 那么LINUX中有那些例行性工作呢? 进行日志文件轮替(log rotate) 日志分析logwatch的任务 新建locate的

【鸟哥的Linux私房菜】 第16章 例行性工作(crontab)

在这章中主要讲述了两个命令at(batch) 和 crontab, 其中batch可以理解为at的一种特殊执行方式. at: 是个可以处理仅执行一次就结束调度的命令,需要atd服务: crontab: 它所设置的工作会一直循环执行下去:需要crond 服务: 仅执行一次的工作调度 : at 1. 打开atd服务   # /etc/init.d/atd restart  //重启atd服务    # chkconfig atd on   // 加入开机启动 2. at的运行方式   执行逻辑:事实

工作杂谈之说说工作中的二宗罪

博客开封了,有段时间没有写过技术文章了,前段时间工作太忙,几乎没有时间去反思工作,虽然搞的东西不是很困难,但是需要耗费很多时间去熟悉新的东西.主要是在工作中需要使用到微软开发的新框架SOLFramework,它是由微软为远洋地产量身定做的MVC框架,需要在该平台基础上开发导致了很多后续的麻烦. 先来说下最近的工作情况吧,最近一段时间在工作中不是很如意,很多事情没有按照自己的规划进行,其中最主要的表现是这段时间没有更新文章,无论是在技术上的文章还是工作上的学习都没有及时的去思考.反思,可能是跟自己

Android开发实践:自定义带消息循环(Looper)的工作线程

上一篇文章提到了Android系统的UI线程是一种带消息循环(Looper)机制的线程,同时Android也提供了封装有消息循环(Looper)的HandlerThread类,这种线程,可以绑定Handler()对象,并通过Handler的sendMessage()函数向线程发送消息,通过handleMessage()函数,处理线程接收到的消息.这么说比较抽象,那么,本文就利用基础的Java类库,实现一个带消息循环(Looper)的线程,以帮助初学者理解这样一个Looper到底是怎么工作的. 1

二叉搜索树的顺序性

------------------siwuxie095 二叉搜索树的顺序性 二叉搜索树具有一定的顺序性,即 使用二叉搜索树可以回答很多 元素之间的和顺序相关的问题,如下: (1)minimum 和 maximum 通过二叉搜索树可以非常容易地找到一组数据中最小的元素 minimum 和最大的元素 maximum (2)predecessor 和 successor 通过二叉搜索树可以非常容易地找到一个元素的前驱 predecessor 和后继 successor (3)floor 和 ceil

【转】Android开发实践:自定义带消息循环(Looper)的工作线程

http://ticktick.blog.51cto.com/823160/1565272 上一篇文章提到了Android系统的UI线程是一种带消息循环(Looper)机制的线程,同时Android也提供了封装有消息循环(Looper)的HandlerThread类,这种线程,可以绑定Handler()对象,并通过Handler的sendMessage()函数向线程发送消息,通过handleMessage()函数,处理线程接收到的消息.这么说比较抽象,那么,本文就利用基础的Java类库,实现一个

CentOS工作内容(二)关闭SELinux

CentOS工作内容(二)关闭SELinux CentOS安装完成后,有很多配置要改,不过最重要就是关闭SELinux SELinux是增强安全性的一项功能,不是SELinux不好,而是当功能安全性较高时会带来很多不便 为了初学者和管理者使用方便,我们建议关闭SELinux,以免安装或配置服务时发生不必要的错误 用到的快捷键 tab 自动补齐(有不知道的吗) ctrl+a 移动到当前行的开头(a ahead) ctrl+u 删除(剪切)此处至开始所有内容 vim 末行模式下 :ser nu 然后

Linux定时循环执行python脚本

本文主要介绍在linux环境下,定时循环执行python脚本的两种方法. 方法一: nohup vim time.py 1 import time 2 while(True): 3 #time.sleep(1) 4 with open('time.log', 'a+') as logfile: 5 logfile.write('Hello, World!\n') 6 time.sleep(1) 7 #break 在终端运行如下命令 nohup python time.py & 功能:实现了每秒将

17 C#中的循环执行 while循环

在编程中有代码的执行主要有三种方式.(1)顺序执行,也就是一条语句一条语句按顺序执行:(2)条件执行,也就是if...else.当某种条件满足时执行一些代码:(3)循环执行,就是当某种条件满足的时候,重复执行某些代码.很多复杂的软件应用都是通过这三种方式的神奇的组合而产生的.前面我们已经讲过了顺序执行和条件执行.在这一节练习中,我们要了解一下循环执行. 在C#中我们在日常工作经常用到的循环执行有两种.(1)while循环:(2)for循环; 当然C#提供的循环执行的方式不止这两种.有兴趣,可以在