- 浏览: 212862 次
- 性别:
- 来自: 宇宙
文章分类
最新评论
-
naryCC:
虽然没有smarty那么方便,但是由于我们的环境太老不得不使用 ...
SmartTemplate -
victorwmh:
我们项目是Java项目,但数据源来自不同的地方,有些还是合作单 ...
和C++相对应Java的CheckSum -
cuisuqiang:
那你们到底是Java项目还是C++的项目?
和C++相对应Java的CheckSum -
david.org:
attempt to write a readonly dat ...
linux+apache+subversion版本控制 -
victorwmh:
wellee 写道兄弟,我怎么配置ZendDebugger老是 ...
Zend Debugger和Zend Optimizer配置(Windows)
在 Linux 中,任务可以被配置在指定的时间段、指定的日期、或系统平均载量低于指定的数量时自动运行。红帽企业 Linux 预配置了对重要系统任务的运行,以便使系统能够时时被更新。譬如,被 locate 命令使用的 slocate 数据库每日都被更新。系统管理员可使用自动化的任务来执行定期备份、监控系统、运行定制脚本等等。
红帽企业 Linux 随带几个自动化任务的工具:cron 、at 、和 batch 。
37.1. cron
cron 是一个可以用来根据时间、日期、月份、星期的组合来调度对重复任务的执行的守护进程。
cron 假定系统持续运行。如果当某任务被调度时系统不在运行,该任务就不会被执行。
要使用 cron 服务,你必须安装了 vixie-cron RPM 软件包,而且必须在运行 crond 服务。要判定该软件包是否已安装,使用 rpm -q vixie-cron 命令。要判定该服务是否在运行,使用 /sbin/service crond status 命令。
37.1.1. 配置 cron 任务
cron 的主配置文件是 /etc/crontab ,它包括下面几行:
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly
前四行是用来配置 cron 任务运行环境的变量。SHELL 变量的值告诉系统要使用哪个 shell 环境(在这个例子里是 bash shell);PATH 变量定义用来执行命令的路径。cron 任务的输出被邮寄给 MAILTO 变量定义的用户名。如果 MAILTO 变量被定义为空白字符串(MAILTO="" ),电子邮件就不会被寄出。HOME 变量可以用来设置在执行命令或脚本时使用的主目录。
定义一个每分钟执行的crontab任务可以类似如下定义:
*/1 * * * * (/usr/local/bin/php /home/eygle/tw2ohter/cron.php)
/etc/crontab 文件中的每一行都代表一项任务,它的格式是:
minute hour day month dayofweek command
-
minute — 分钟,从 0 到 59 之间的任何整数
-
hour — 小时,从 0 到 23 之间的任何整数
-
day — 日期,从 1 到 31 之间的任何整数(如果指定了月份,必须是该月份的有效日期)
-
month — 月份,从 1 到 12 之间的任何整数(或使用月份的英文简写如 jan、feb 等等)
-
dayofweek — 星期,从 0 到 7 之间的任何整数,这里的 0 或 7 代表星期日(或使用星期的英文简写如 sun、mon 等等)
-
command — 要执行的命令(命令可以是 ls /proc >> /tmp/proc 之类的命令,也可以是执行你自行编写的脚本的命令。)
在以上任何值中,星号(*)可以用来代表所有有效的值。譬如,月份值中的星号意味着在满足其它制约条件后每月都执行该命令。
整数间的短线(-)指定一个整数范围。譬如,1-4 意味着整数 1、2、3、4。
用逗号(,)隔开的一系列值指定一个列表。譬如,3, 4, 6, 8 标明这四个指定的整数。
正斜线(/)可以用来指定间隔频率。在范围后加上 /<integer > 意味着在范围内可以跳过 integer。譬如,0-59/2 可以用来在分钟字段定义每两分钟。间隔频率值还可以和星号一起使用。例如,*/3 的值可以用在月份字段中表示每三个月运行一次任务。
开头为井号(#)的行是注释,不会被处理。
如你在 /etc/crontab 文件中所见,它使用 run-parts 脚本来执行 /etc/cron.hourly 、/etc/cron.daily 、/etc/cron.weekly 和 /etc/cron.monthly 目录中的脚本,这些脚本被相应地每小时、每日、每周、或每月执行。这些目录中的文件应该是 shell 脚本。
如果某 cron 任务需要根据调度来执行,而不是每小时、每日、每周、或每月地执行,它可以被添加到 /etc/cron.d 目录中。该目录中的所有文件使用和 /etc/crontab 中一样的语法。
# record the memory usage of the system every monday # at 3:30AM in the file /tmp/meminfo 0 3 * * mon cat /proc/meminfo >> /tmp/meminfo run custom script the first day of every month at 4:10AM 10 4 1 * * /root/scripts/backup.sh
例 37-1. crontab 的例子
根用户以外的用户可以使用 crontab 工具来配置 cron 任务。所有用户定义的 crontab 都被保存在 /var/spool/cron 目录中,并使用创建它们的用户身份来执行。要以某用户身份创建一个 crontab 项目,登录为该用户,然后键入 crontab -e 命令,使用由 VISUAL 或 EDITOR 环境变量指定的编辑器来编辑该用户的 crontab。该文件使用的格式和 /etc/crontab 相同。当对 crontab 所做的改变被保存后,该 crontab 文件就会根据该用户名被保存,并写入文件 /var/spool/cron/username 中。
cron 守护进程每分钟都检查 /etc/crontab 文件、etc/cron.d/ 目录、以及 /var/spool/cron 目录中的改变。如果发现了改变,它们就会被载入内存。这样,当某个 crontab 文件改变后就不必重新启动守护进程了。
例子1 :
#每天早上7点执行一次 /bin/ls :
0 7 * * * /bin/ls
在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup :
0 6-12/3 * 12 * /usr/bin/backup
周一到周五每天下午 5:00 寄一封信给 alex@domain.name
:
0 17 * * 1-5 mail -s "hi" alex@domain.name
< /tmp/maildata
每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"
20 0-23/2 * * * echo "haha"
注意 :
当程序在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,若是你不希望收到这样的信,请在每一行空一格之后加上 > /dev/null 2>&1 即可
例子2 :
#每天早上6点10分
10 6 * * * date
#每两个小时
0 */2 * * * date
#晚上11点到早上8点之间每两个小时,早上8点
0 23-7/2,8 * * * date
#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * mon-wed date
#1月份日早上4点
0 4 1 jan * date
37.1.2. 控制对 cron 的使用
/etc/cron.allow 和 /etc/cron.deny 文件被用来限制对 cron 的使用。这两个使用控制文件的格式都是每行一个用户。两个文件都不允许空格。如果使用控制文件被修改了,cron 守护进程(crond )不必被重启。使用控制文件在每次用户添加或删除一项 cron 任务时都会被读取。
无论使用控制文件中的规定如何,根用户都总是可以使用 cron。
如果 cron.allow 文件存在,只有其中列出的用户才被允许使用 cron,并且 cron.deny 文件会被忽略。
如果 cron.allow 文件不存在,所有在 cron.deny 中列出的用户都被禁止使用 cron。
发表评论
-
linux日志分析常用命令
2016-11-18 15:18 5081.日志文件 java.lang.ArrayInd ... -
常用shell脚本
2014-08-29 09:11 714常用shell脚本集 1、监测来自某个IP的TCP活动连接 ... -
netstat命令详解
2014-08-27 14:55 1750netstat命令用于显示IP、TCP、UDP和ICMP协 ... -
Linux 下挂载新硬盘方法
2014-03-06 12:08 713转载请注明: 转载自Life吧 本文永久链接地址:htt ... -
查看TCP网络连接情况
2012-12-05 10:25 848命令:netstat -n | awk '/^tcp/ ... -
Linux下java程序启动脚本
2012-09-28 10:51 1577#!/bin/sh # #该脚本为Linux下启动j ... -
linux+java+tomcat
2012-09-25 15:40 893一、安装java 1、安装jdk ... -
yum httpd php php-mysql
2012-02-20 11:10 1533对于CentOS服务器yum是一个非常好的工具,尤其是在32位 ... -
SSH中文乱码问题
2011-11-29 09:29 875之前写过一篇《将命令加入PATH中》 的文章,最近使用服务器 ... -
关闭CENTOS不必要的默认服务
2011-08-19 15:32 1808转自:http://www.lanzs.cn/blog/arc ... -
Postfix替代sendmail发送邮件
2011-08-18 10:52 3624基础知识 MUA: Mail User Ag ... -
linux+bind快速配置简单dns
2011-08-03 09:25 1451一、安装 # yum install bind ... -
linux+varnish安装配置
2011-07-24 10:16 17841、Varnish简介 Varnish是一款高性 ... -
linux+nginx安装配置及使用
2011-07-23 09:59 5374准备工作: # yum install gcc gc ... -
Linux防火墙iptables设置
2011-07-22 10:49 1410iptables防火墙由Netfilter项目开发(http: ... -
linux+cacti安装配置,监控主机性能
2011-07-21 15:21 2286一、Cacti概述 1、cacti是用php语言 ... -
linux+snmp安装及配置说明
2011-07-21 11:35 2192NMP(Simple Network Management P ... -
linux网关、DNS、IP设置
2011-07-19 16:29 1605本文以CentOS为例,下列为各设置的文件路径名: IP ... -
Linux下strace命令用法
2011-07-18 10:02 1899一、介绍 1、功能说明 strace ... -
Unix/Linux目录权限: rwx 之外的 s
2011-06-19 15:49 1793以前一直不太明白Linux的目录权限当中的 s,今天终于明白了 ...
相关推荐
Linux 计划任务详解 Linux 计划任务是指在 Linux 系统中,根据预设的时间和条件执行特定的任务或命令的机制。这种机制可以让用户在不需要人工干预的情况下运行作业,提高工作效率和自动化程度。 cron 服务是 ...
在Windows系统中,虽然有内置的任务计划程序(Task Scheduler),但有些用户可能更倾向于使用具有类似Unix/Linux `cron`功能的第三方软件,以获得更加灵活和易于管理的定时任务设置。 "cron"是Unix和Linux系统中的...
`-e`选项用于编辑当前用户的cron任务,`-l`用于列出当前用户的cron任务,`-r`则用于删除所有cron任务。如果要为其他用户管理cron,必须以root权限运行,并加上`-u`参数。例如,`crontab -u username -e`将打开指定...
在提供的文件“linux定时任务详细说明.pdf”中,主要涉及的是如何配置和管理Linux下的cron服务来执行一系列的清理操作。下面将详细解释相关知识点: 1. **cron服务**:cron是Linux下的守护进程,负责按照预定义的...
可以在“首页 - 网站管理 - 通告”中查看Cron计划任务是否正常运行,如出现“已经至少24小时没有运行cron.php维护脚本了”的提示,则说明Cron计划任务运行不正常,需要找到原因,让其定期执行。 四、检查Cron计划...
Linux 操作系统定时任务系统 Cron 入门 本篇文章主要介绍了 Linux 操作系统中的定时任务系统 Cron 入门知识点。Cron 是一个 Linux 下的定时执行工具,可以在无需人工干预的情况下运行作业。由于 Cron 是 Linux 的...
Linux 操作系统定时任务系统 Cron 入门 Cron 是一个 Linux 下的定时执行工具,可以在无需人工干预的情况下运行作业。由于 Cron 是 Linux 的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务: * /...
Linux 计划任务 crontab 使用说明 Linux 系统中,我们需要使用 crontab 命令来实现任务计划。crontab 命令是一种用于设置周期性被执行的指令的命令,常见于 Unix 和类 Unix 的操作系统中。该命令从标准输入设备读取...
在Linux系统中,`cron` 是一个非常重要的任务调度工具,它允许用户按照预定的时间间隔执行任务。在本例中,我们使用`cron`来定期检查MySQL数据库的状态,确保其正常运行。`PHP`作为服务器端脚本语言,被用来编写这个...
在Linux系统中,PHP执行定时任务通常不依赖于PHP自身的机制,...此外,还可以参考相关文章了解更多关于Linux定时任务的配置和使用技巧,如Linux下使用`cron`定时执行PHP任务的方法,以及对`cron`的详细配置和用法说明。
在Linux系统中,`crontab` 是一个用于设置周期性被执行的任务的命令,它允许用户根据特定的时间间隔安排任务的执行。在没有网络连接的情况下,依然可以通过离线模式安装 `crontab`,这对于一些没有网络环境或者网络...
在Linux系统中,Cron服务是一种用于计划执行任务的工具。它允许用户设置周期性运行的任务,例如自动备份数据、定时发送邮件等。Cron服务的核心是`crontab`命令,通过这个命令用户可以编辑、查看或删除自己的Cron作业...
cron表达式是Linux系统中广泛使用的定时任务调度工具,它允许用户定义周期性的任务执行计划。在本项目中,"cron可视化前端界面.zip" 提供了一个前端界面,用于图形化地创建和验证cron表达式,并展示由该表达式确定的...
阿里云Cron服务是阿里云应用引擎(ACE)提供的一项定时分布式任务服务,它允许开发者在云端安排定时任务,类似于Linux系统的crontab服务。Cron服务的优势在于其分布式特性,能够确保任务的高可用性和可靠性。 **...
Cron表达式是一种广泛用于计划任务调度的语言,它允许设置精确的时间间隔进行任务执行。此JS插件结合了流行的Bootstrap框架,使得在网页上创建一个既实用又美观的Cron选择器变得轻而易举。 **Cron表达式**是Unix和...
在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。 cron的配置文件称为“crontab”,是“cron table”的简写。 一...
添加计划任务,每7天执行一次`:这部分可能是关于如何配置cron计划任务以每七天执行一次备份的说明。 4. `1`:这个文件名不完整,可能是其他步骤或文件的一部分,例如备份脚本或配置文件。 在Linux下创建数据库备份...
cron表达式是Unix/Linux系统中用于设置定时任务的一种标准格式,它允许用户按照特定的时间间隔或特定时间点执行任务。在Java、JavaScript等编程语言中,我们也可以利用cron表达式来实现定时任务的功能。`...