转帖,http://hi.baidu.com/dilijia1002/blog/item/f8f6273d25558ae73d6d97bd.html
感谢 妙不可言@hi.baidu.com
名称 : crontab
使用权限 : 所有使用者
使用方式 :
crontab file [-u user]-用指定的文件替代目前的crontab。
crontab-[-u user]-用标准输入替代目前的crontab.
crontab-1[user]-列出用户目前的crontab.
crontab-e[user]-编辑用户目前的crontab.
crontab-d[user]-删除用户目前的crontab.
crontab-c dir- 指定crontab的目录。
crontab文件的格式:M H D m d cmd.
基本格式 :
* * * * * command
分 时 日 月 周 命令
M: 分钟(0-59)。每分钟用*或者 */1表示
H:小时(0-23)。(0表示0点)
D:天(1-31)。
m: 月(1-12)。
d: 一星期内的天(0~6,0为星期天)。
cmd要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环境变量
说明 :
crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。
参数 :
crontab -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
crontab -r : 删除目前的时程表
crontab -l : 列出目前的时程表
crontab file [-u user]-用指定的文件替代目前的crontab。
时程表的格式如下 :
f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推
使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。
例子 :
#每天早上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
范例
$crontab -l 列出用户目前的crontab.
/usr/lib/cron/cron.allow表示谁能使用crontab命令。如果它是一个空文件表明没有一个用户能安排作业。如果这个文件不存在,而有另外一个文件/usr/lib/cron/cron.deny,则只有不包括在这个文件中的用户才可以使用crontab命令。如果它是一个空文件表明任何用户都可安排作业。两个文件同时存在时cron.allow优先,如果都不存在,只有超级用户可以安排作业。
crontab文件的一些例子:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启apache。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启apache。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启apache。
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启apache
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启apache
例子:
每两个时间值中间使用逗号分隔。
除了数字还有几个个特殊的符号就是”*”、”/”和”-”、”,”,*代表所有的取值范围内的数字,”/”代表每的意思,”*/5″表示每5个单位,”-”代表从某个数字到某个数字,”,”分开几个离散的数字。
每天早上6点
0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。
每两个小时
0 */2 * * * echo "Have a break now." >> /tmp/test.txt
晚上11点到早上8点之间每两个小时,早上八点
0 23-7/2,8 * * * echo "Have a good dream:)" >> /tmp/test.txt
每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * 1-3 command line
1月1日早上4点
0 4 1 1 * command line
每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。
2.编辑/etc/crontab 文件配置cron
cron 服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
HOME=/ //使用者运行的路径,这里是根目录
# run-parts
01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本
02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本
42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本
大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。
5,15,25,35,45,55 16,17,18 * * * command
这就是表示任意天任意月,其实就是每天的下午4点、5点、6点的5 min、15 min、25 min、35 min、45 min、55 min时执行命令。
[例] 在每周一,三,五的下午3:00系统进入维护状态,重新启动系统。那么在crontab 文件中就应该写入如下字段:
00 15 * * 1,3,5 shutdown -r +5
然后将该文件存盘为foxy.cron,再键入crontab foxy.cron安装该文件。
[例] 每小时的10分,40分执行用户目录下的innd/bbslin这个指令:
10,40 * * * * innd/bbslink
[例] 每小时的1分执行用户目录下的bin/account这个指令:
1 * * * * bin/account
[例] 每天早晨三点二十分执行用户目录下如下所示的两个指令(每个指令以;分隔):
20 3 * * * (/bin/rm -f expire.ls logins.bad;bin/expire$#@62;expire.1st)
[例] 每年的一月和四月,4号到9号的3点12分和3点55分执行/bin/rm -f expire.1st这个指令,并把结果添加在mm.txt这个文件之后(mm.txt文件位于用户自己的目录位置)。
12,55 3 4-9 1,4 * /bin/rm -f expire.1st$#@62;$#@62;mm.txt
[例] 我们来看一个超级用户的crontab文件:
#Run the ‘atrun’ program every minutes
#This runs anything that’s due to run from ‘at’.See man ‘at’ or ‘atrun’.
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/lib/atrun
40 7 * * * updatedb
8,10,22,30,39,46,54,58 * * * * /bin/sync
相关推荐
本地crontab NodeJS库和实用程序,用于将本地时区中的crontab转换为一组UTC crontab。 由于夏时制,它将创建多个UTC crontab。 在线使用! 在查看 用作脚本 $ npx local-crontab -h usage: local-crontab [-h] [-v...
标题中的"PyPI 官网下载 | python-crontab-2.2.3.tar.gz"指出我们要讨论的是在PyPI上下载的一个名为`python-crontab`的软件包,版本号为2.2.3,其打包格式为tar.gz。 `python-crontab`是一个Python库,专门用于管理...
在给定的压缩包文件中,我们聚焦于三个关键的Shell工具:awk、sed和crontab。下面将详细介绍这三个工具及其在Linux环境中的应用。 1. **awk**: - **基本概念**:awk是一种强大的文本分析工具,用于处理和打印数据...
例如,本地文件存储被替换为S3、GlusterFS或CephFS,MySQL/Redis数据库进行了相应的调整,定时任务从Crontab转向K8S Cronjob,日志管理和监控也进行了标准化。 7. **资源推送和自动化**:通过不改变原有体系,利用...
本文将详细讲解如何在AIX操作系统上使用RMAN(Recovery Manager)结合crontab来实现Oracle数据库的自动化增量备份。 首先,RMAN是Oracle数据库提供的一种强大工具,用于执行数据库备份、恢复、空间管理和性能优化等...
在讨论如何使用JavaScript判断Crontab表达式是否合法之前,我们先要了解Crontab表达式的基本构成及其用途。Crontab表达式是Unix/Linux系统中用于设置定时任务调度的一种规则表达式。它一般由五个或六个字段组成,每...
Crontab.zip是一个包含了在线Cron表达式生成器源代码的压缩文件,它主要用于帮助用户创建和理解Cron表达式,这种表达式是Linux系统中用于设置定时任务的关键工具。在本文中,我们将深入探讨Cron表达式、定时任务、...
`at`、`&`和`crontab`是实现后台任务调度的重要工具,而`tr`则是一种强大的文本转换和过滤命令。接下来,我们将深入探讨这些工具的使用方法和应用场景。 一、`at`命令 `at`命令用于安排在特定时间执行一次性任务,...
croncal 是一个非常有用的工具,尤其对于系统管理员和开发者来说,它可以帮助他们更好地理解和管理Linux系统的crontab文件。crontab文件是Linux系统中用于设置定时任务的配置文件,而croncal则能够将这些定时任务...
因此,"quartz/Cron/Crontab表达式在线生成工具"提供了一个方便的解决方案。这个纯HTML和CSS构建的工具可以帮助开发者快速生成和测试Cron表达式。通过输入期望的执行时间,工具会自动生成相应的Cron表达式,大大提高...
Linux 操作系统中,Crontab 是一个非常强大且灵活的计划任务工具,它可以让用户在指定的时间点执行指定的命令或脚本。在 PHP 中,我们可以使用 Crontab 来实现计划任务,例如定时发送内容、执行 PHP 脚本等。下面...
在Linux Shell编程中,`eval` 和 `crontab` 是两个非常重要的工具,它们各自服务于不同的目的。本文将深入探讨这两个命令的工作原理及其应用场景。 `eval` 命令在Shell中扮演着执行字符串作为命令的角色。它会对...
-cron MongoDB集合为crontab 该软件包提供了一个简单的API,用于计划任务和在集合上运行重复性作业。 任何集合都可以转换为作业队列或crontab列表。 它使用官方支持的。 它速度很快,最大程度地减少了处理开销,并且...
cron-parser, 用于解析crontab指令的node.js 库 解析器 用于解析crontab指令的Node.js 库。 它包括对时区和DST转换的支持。安装npm install cron-parser支持格式* * * * * *┬ ┬ ┬ ┬ ┬ ┬│
Node.js库,用于解析和处理crontab指令。 它包括对时区和DST转换的支持。 兼容性节点> = 0.8 打字稿<= 4.2 设置 npm install cron-parser 支持格式 * * * * * * ┬ ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ | │ │ │ ...
使用CrontabManager,开发者可以避免直接编辑crontab文件带来的繁琐和潜在错误,因为它提供了API和可能的图形用户界面(GUI)来处理所有操作。该库的主要功能包括: 1. **创建任务**:可以轻松地定义新的cron作业,...
它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go...
做了一些小事,将cronline作为参数,或者尝试读取您的crontab并将其转换为人类可读的内容。 大多数(阅读:全部)繁重的工作实际上是由完成的。 用法: hcron " 0 11 * * * php awesomescript.php " 将输出 11:...
它通过从/etc/crontab和/var/spool/cron /etc/crontab常用位置解析crontab和anacrontab文件并生成systemd计时器和服务来工作。 您可以将cron.target用作生成单元的单个控制点。 它旨在替代所有cron实现。 基本原理...
- 使用`tail -f /var/log/cron`监控Crontab的日志,以及`cd /usr/local/kettle/logs`和`vi`或`vim`命令查看Kettle的日志文件,以跟踪运行情况。 Kettle在Windows和Linux环境下的部署涉及了文件操作、环境配置、...