linux crontab
概念:
- Linux 工作排程的种类:at, cron
- at 是个可以处理仅执行一次就结束排程的指令,不过要执行 at 时, 必须要有 atd 这个服务支持。
- crontab 这个指令所设定的工作将会循环的一直进行下去! 可循环的时间为分钟、小时、每周、每月或每年等。crontab 除了可以使用指令执行外,亦可编辑 /etc/crontab 来支持。 至于让 crontab 可以生效的服务则是 crond 这个服务喔!
- Linux 上常见的例行性工作
- 进行登录档的轮替 (log rotate):
- 登录文件分析 logwatch 的任务
- 建立 locate 的数据库:
- whatis 数据库的建立
- RPM 软件登录文件的建立:
- 移除暂存档
- 与网络服务有关的分析行为
- at 的运作方式
- 事实上,我们使用 at 这个指令来产生所要运作的工作,并将这个工作以文本文件的方式写入 /var/spool/at/ 目录内,该工作便能等待 atd 这个服务的取用与执行了。
- /etc/at.allow 与 /etc/at.deny 这两个档案来进行 at 的使用限制。先匹配允许的,没有就匹配拒绝如果两个档案都不存在,那么只有 root 可以使用 at 这个指令。
- 循环执行的例行性工作排程
- 当用户使用 crontab 这个指令来建立工作排程以后,该项工作就会被记录到 /var/spool/cron/ 里面去了,而且是以账号来作为判别的喔!另外, cron 执行的每一项工作都会被记录到 /var/log/cron 这个登录档中,所以啰,如果你的 Linux 不知道有否被植入木马时,也可以搜寻一下 /var/log/cron 这个登录档呢!
- /etc/cron.allow /etc/cron.deny
- 系统的配置文件: /etc/crontab
- 01 * * * * root run-parts /etc/cron.hourly:
- run-parts 一个 bash script 啦!如果你直接进入 /usr/bin/run-parts 去看看, 会发现这支指令会将后面接的『目录』内的所有档案捉出来执行!这也就是说『 如果你想让系统每小时主动帮你执行某个指令,将该指令写成 script,并将该档案放置到 /etc/cron.hourly/ 目录下即可』的意思!
- 一些注意事项
- 资源分配不均的问题
- 流量
- 区域内其他 PC 的流量侦测
- CPU 使用率
- RAM 使用率
- 在线人数实时侦测
- 范例:[root@www ~]# vi /etc/crontab
- 1,6,11,16,21,26,31,36,41,46,51,56 * * * * root CMD1
- 2,7,12,17,22,27,32,37,42,47,52,57 * * * * root CMD2
- 3,8,13,18,23,28,33,38,43,48,53,58 * * * * root CMD3
- 4,9,14,19,24,29,34,39,44,49,54,59 * * * * root CMD4
- 多个每五分钟执行一次的命令
- 取消不要的输出项目
- 直接以『命令重导向』将输出的结果输出到 /dev/null 这个垃圾桶当中就好了
- 安全的检验
- 很多时候被植入木马都是以例行命令的方式植入的,所以可以藉由检查 /var/log/cron 的内容来视察是否有『非您设定的 cron 被执行了?』这个时候就需要小心一点啰!
- 周与日月不可同时并存
- 资源分配不均的问题
- 01 * * * * root run-parts /etc/cron.hourly:
- 可唤醒停机期间的工作任务 -----------anacron
- anacron 并不能指定何时执行某项任务, 而是以天为单位或者是在开机后立刻进行 anacron 的动作,他会去侦测停机期间应该进行但是并没有进行的 crontab 任务,并将该任务执行一遍后,anacron 就会自动停止了。
- anacron 与 /etc/anacrontab
- anacron 并不需要额外的设定,使用默认值即可!只是我们的 CentOS 只有在开机时才会执行 anacron 就是了。
- chkconfig --list anacron -----检查是否开机执行
命令:
- atd 的启动与 at 运作的方式
- /etc/init.d/atd restart 启动服务
- chkconfig atd on 开机自动启动
- at [-mldv] TIME 进入到一个shell环境
- at -c 工作号码
- -m :当 at 的工作完成后,即使没有输出讯息,亦以 email 通知使用者该工作已完成。
- -l :at -l 相当于 atq,列出目前系统上面的所有该用户的 at 排程;
- -d :at -d 相当于 atrm ,可以取消一个在 at 排程中的工作;
- -v :可以使用较明显的时间格式栏出 at 排程中的任务栏表;
- -c :可以列出后面接的该项工作的实际指令内容。
- TIME:时间格式,这里可以定义出『什么时候要进行 at 这项工作』的时间,
- 格式有: HH:MM ex> 04:00
- HH:MM YYYY-MM-DD ex> 04:00 2009-03-17
- HH:MM[am|pm] [Month] [Date] ex> 04pm March 17
- HH:MM[am|pm] + number [minutes|hours|days|weeks]ex> now + 5 minutes ex> 04pm + 3 days
- 格式有: HH:MM ex> 04:00
- at 工作的管理
- atq ---------------------查询目前主机上面有多少的 at 工作排程?
- atrm [jobnumber] -移除
- batch:系统有空时才进行背景任务
- batch 23:00 2009-3-17 也是用 at 的工作管理
- 循环执行的例行性工作排程
- crontab [-u username] [-l|-e|-r]
- -u :只有 root 才能进行这个任务,亦即帮其他使用者建立/移除 crontab 工作排程;
- -e :编辑 crontab 的工作内容
- -l :查阅 crontab 的工作内容
- -r :移除所有的 crontab 的工作内容,若仅要移除一项,请用 -e 去编辑。
- crontab [-u username] [-l|-e|-r]
- 可唤醒停机期间的工作任务 -----------anacron
- anacron 与 /etc/anacrontab
- anacron [-sfn] [job]..
- anacron -u [job].
- -s :开始一连续的执行各项工作 (job),会依据时间记录文件的数据判断是否进行;
- -f :强制进行,而不去判断时间记录文件的时间戳;
- -n :立刻进行未进行的任务,而不延迟 (delay) 等待时间;
- -u :仅更新时间记录文件的时间戳,不进行任何工作。
- job :由 /etc/anacrontab 定义的各项工作名称。
- 范例:anacron 若下达『 anacron -s cron.daily 』时,他会这样运作的:
- 由 /etc/anacrontab 分析到 cron.daily 这项工作名称的天数为 1 天;
- 由 /var/spool/anacron/cron.daily 取出最近一次执行 anacron 的时间戳;
- 由上个步骤与目前的时间比较,若差异天数为 1 天以上 (含 1 天),就准备进行指令;
- 若准备进行指令,根据 /etc/anacrontab 的设定,将延迟 65 分钟
- 延迟时间过后,开始执行后续指令,亦即『 run-parts /etc/cron.daily 』这串指令;
- 执行完毕后, anacron 程序结束
- anacron 与 /etc/anacrontab
linux crontab的更多相关文章
- Linux crontab 命令详解
在 Linux 中,任务可以被配置在指定的时间段.指定的日期.或系统平均载量低于指定的数量时自动运行.红帽企业 Linux 预配置了对重要系统任务的运行,以便使系统能够时时被更新.譬如,被 locat ...
- linux crontab 实现每秒执行(转)
linux crontab 命令,最小的执行时间是一分钟.如需要在小于一分钟内重复执行,可以有两个方法实现. 1.使用延时来实现每N秒执行 创建一个php做执行动作,非常简单,就是把当前时间写入log ...
- Linux crontab 命令详解(含配置文件路径)
编辑/etc/crontab 文件配置cron cron 服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服 ...
- Linux crontab任务调度
一.crontab说明 Linux crontab任务调度是在规定的时间频率内去执行相应的任务. 二.crontab文件详情 1.crontab文件在Linux中的/etc/crontab 2.查看c ...
- Linux Crontab及使用salt进行管理
一.引言: 最近无意之间看到salt有一个cron的模块,今天就在这里介绍linux crontab以及通过salt的cron对crontab的管理. 二.Linux crontab的介绍: cron ...
- Linux crontab使用方法
crontab命令主要用于设置命令行或者脚本周期性的执行.该命令从标准输入设备读取指令,并将其存放于文件中,以供之后读取和执行.本文主要讲述crontb命令的基本语法和配置方法. 1.crontab命 ...
- linux crontab 实现每秒执行的实例
linux crontab 命令,最小的执行时间是一分钟.如需要在小于一分钟内重复执行,可以有两个方法实现. 1.使用延时来实现每N秒执行 原理:通过延时方法 sleep N 来实现每N秒执行. 创 ...
- Linux crontab 实现每秒执行
Linux crontab 实现每秒执行 linux crontab 命令,最小的执行时间是一分钟.如需要在小于一分钟内重复执行,可以有两个方法实现. 1.使用延时来实现每N秒执行 创建一个php做执 ...
- linux crontab 的使用
linux crontab 的使用 准备(实验楼需要,实际环境不需要):sudo service rsyslog startsudo cron -f & crontab 使用添加任务:cron ...
- 【Python】Linux crontab定时任务配置方法(详解)
CRONTAB概念/介绍 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行. cron 系统调度进程. 可以使用它在 ...
随机推荐
- 使用Servlet上传文件
使用浏览器向服务器上传文件其本质是打开了一个长连接并通过TCP方式传输数据.而需要的动作是客户端在表单中使用file域,并指定该file域的name值,然后在form中设定enctype的值为mult ...
- MongoDB中insert方法、update方法、save方法简单对比
MongoDB中insert方法.update方法.save方法简单对比 1.update方法 该方法用于更新数据,是对文档中的数据进行更新,改变则更新,没改变则不变. 2.insert方法 该方法用 ...
- 谈谈Java面向对象的三大特性
Java面向对象的三大特性就是指封装.继承.多态了. 一.封装: 概念:封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. (举例:笔记本电脑就是一个封装体,Java语言中最小的封装体就是函数 ...
- Ajax发送异步请求(四步操作)
1.第一步(得到XMLHttpRequest) *ajax其实只需要学习一个对象:XMLHttpRequest,如果掌握了它,就掌握了ajax!! *得到XMLHttpRequest >大多数浏 ...
- Linux CentOS6.8下解压安装mysql-5.7.14完整介绍
环境:centos6.8 32位本教程安装MySQL是通过编译过的二进制文件进行安装.是不针对特定平台的通用安装方法,使用的二进制文件是后缀为.tar.gz的压缩文件1.下载 http://dev.m ...
- CSS3中box-sizing的理解
box-sizing属性可以为三个值之一:content-box(默认),border-box,padding-box,inherit(继承父级box-sizing 属性的值.) content-bo ...
- JS实现div动态水平垂直居中
在做页面的过程中,在很多地方都会遇到元素需要水平垂直的居中这个问题,之前总是去网上搜别人的代码,今天仔细研究了一下,分享给大家,先写一个简单的例子: <div class="mui-c ...
- jmeter上传文件搞了一天,才搞定,没高人帮忙效率就是低,赶紧记下来,以备后用
先用谷歌浏览器抓包,抓到的包类似这样: 在jmeter里添加一个http请求,配置好参数,方法,端口,路径等, 勾选 在“同请求一起发送参数”里填写上面抓包的部分数据: 分别对应录入,勾选“编码” 我 ...
- 【java基础学习二】 数组相互转换,转成用逗号隔开的字符串等
/** * int[],Integer[],List,List<Integer>,HashSet<Integer>相互转换,转成用逗号隔开的字符串 */ public stat ...
- C# iis 错误配置信息( 500.19 - Internal Server Error )
出现这个错误是因为 IIS 7 采用了更安全的 web.config 管理机制,默认情况下会锁住配置项不允许更改. 要取消锁定可以以管理员身份运行命令行 %windir%\system3 ...