下面小编就为大家带来一篇Linux crontab定时任务配置方法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
CRONTAB概念/介绍
crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于" crontab "文件中,以供之后读取和执行。
时间单位系统调度进程。可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行克朗。是系统主要的调度进程,可以在无需人工干预的情况下运行作业crontab .命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。系统管理员可以通过克隆否认和克隆允许这两个文件来禁止或允许用户拥有自己的crontab文件。
1: crontab文件一般位于/etc/下,这里面存放系统运行的的调度程序。
[root @ localhost cron]# more/etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
#运行零件
01 * * * *根运行-零件/etc/cron.hourly
02 4 * * *根run-parts/etc/cron。每天地;天天地
22 4 * * 0根运行零件/etc/cron。每周
42 4 1 * *根运行-零件/etc/cron。每月
2:每个用户都会生成一个自动生成一个自己的crontab文件,一般位于/var/spool/cron目录下
[root @ localhost cron]# CD/var/spool/cron
[root@localhost cron]# ls
神谕根目录
如果你用命令crontab -r就会删除当前用户的crontab文件,例如你切换到神谕账号下,执行了该命令,那么/var/spool/cron/oracle文件就会删除,如果要创建该文件只需要用crontab -e命令即可。注意,普通用户一般没有权限访问/var/spool/cron
3:cron.deny 与 cron.allow文件
/etc/cron.deny表示不能使用crontab命令的用户
/etc/cron.allow表示能使用crontab的用户。
默认情况下,cron.allow文件不存在。如果两个文件同时存在,那么/etc/cron.allow优先。如果两个文件都不存在,那么只有超级用户可以安排作业。
但是让人纳闷的是克隆否认文件是空的,如下所示
[oracle@localhost等]$ more cron.deny
4:cron.hourly,cron.daily,cron.monthly,cron.weekly
[oracle@localhost等]$ ls -lrt cron*
-rw-r - r - 1根255根2004年9月21日crontab
-rw-r-r-1根根0 2008年5月16日克隆否认
每小时一次:
总计0
克朗。月刊:
共计8个
-rwxr-xr-x 1根根278 2004年9月29日0巨蟒
克朗周刊:
共计16人
-rwxr-xr-x 1根根277 2004年9月29日0巨蟒
-rwxr-xr-x1 root root 414 Jun 6 2007 00-做什么就是什么。时间单位
克罗恩日报:
总计60
-rwxr-xr-x1根根286 2004年8月14日tmpwatch
-rwxr-xr-x 1根根276 2004年9月29日0巨蟒
-rwxr-xr-x 1根根2133 2004年1 2月一日预链接
-rwxr-xr-x 1根根180 2006年5月2日对数旋转
-rwxr-xr-x1 root root 418 Jun 6 2007 00-做什么就是什么。时间单位
-rwxr-xr-x 1根104根2007年8月2日转速
-rwxr-xr-x 1根121根2007年8月22日
lrwxrwxrwx 1根根2008年5月16日00-日志观察-./log.d/scripts/logwatch.pl
cron.d:
共计12人
-rw-1根根366 2007年6月12日萨-更新
-rw-r - r - 1根根188 2007年七月18日sysstat
CRONTAB在线手册
注意:不同版本的Linux操作系统操作系统系统,可能crontab手册内容有所出入,请以实际版本为准。
[Oracle @ localhost ~]$ man crontab |更多
克朗塔布(1)
名字
维护个人用户的crontab文件(ISC克朗4.1)
摘要
crontab [-u用户]文件
crontab [-u用户] [-l | -r | -e] [-i] [-s]
描述
Crontab是用于安装、卸载或列出表格的程序
用于驱动ISC克朗中的克朗(8)守护程序。每个用户都可以拥有自己的
拥有crontab,尽管这些是/var/spool/中的文件,但它们不是
旨在直接编辑。对于复式造表服务处(MultipleListingService)模式下的SELinux可以是偶数
更多crontabs -针对每个范围。更多信息请参见selinux(8).
如果克隆允许文件存在,那么您必须在其中按顺序列出
才能被允许使用这个命令。如果克隆允许文件不
存在,但是克隆否认文件确实存在,则您不能在中列出
克隆否认文件,以便使用该命令。如果这两者都没有
文件存在,只有超级用户才能使用该命令。
选择
-你它指定将要使用其crontab的用户的名称
调整了。如果没有给出这个选项,crontab将检查"您的"
crontab,即执行命令的人的crontab .
请注意、苏(8)可能会混淆crontab和
在苏(8)中,为了安全起见,您应该始终使用-你选项
清酒。该命令的第一种形式用于安装新的
crontab从一些命名文件或标准输入,如果伪
给出了文件名-。
-我当前crontab将显示在标准输出上。
-r当前的crontab将被删除。
-e该选项用于使用编辑器编辑当前的crontab
由可视或编辑器环境变量指定。在.之后
退出编辑器后,将安装修改后的crontab
自动地。
构成来自拉丁语、结尾为-us的名词的复数此选项修改-r选项,以提示用户输入
实际删除crontab之前的是/是响应。
构成名词复数它会将当前SELinux安全上下文字符串作为
编辑/替换前对crontab文件的MLS _级别设置-
名词后缀,表示“.的行为”发生-参见crontab(5)中MLS _级别的文档。
请参见
克朗塔布(5),克朗(8)
文件
/etc/cron.allow
/etc/cron.deny
标准
crontab命令符合电气电子工程师学会标准1003.2-1992(“POSIX”).这
新的命令语法不同于以前版本的维谢克朗,因为
以及经典的SVR3语法。
诊断学
如果您使用错误的
命令行。
作者
保罗维谢vixie@isc.org
第四次伯克利分发2007年一月16日CRONTAB(1)
CRONTAB语法及应用
1:查看当前用户的定时任务
[oracle@localhost ~]$ crontab -l
* * * * */home/Oracle/test。上海/发展/空21
2:编辑当前用户的定时任务
可以在编辑状态修改、删除、新增一些定时任务。注释一般用#
[oracle@localhost ~]$ crontab -e
3:删除当前用户的定时任务
[root@localhost ~]# crontab -r
[root@localhost ~]# crontab -l
根没有crontab
4:
如下所示,一般crontab文件里面的定时任务格式如下所示:
59 23 * * */home/Oracle/scripts/alert _ log _ archive。上海/发展/空21
crontab文件中每个条目中各个域的意义和格式:
第一列分钟: 1——59
第二列小时: 1——23(0表示子夜)
第三列日: 1——31
第四列月: 1——12
第五列星期:星期0——6(0表示星期天,1表示星期一、以此类推)
第六列要运行的命令
我们暂且用C1、C2、C3、C4、C5、C6代表这六列,前面五列通过组合方式来决定执行脚本的频率,最小频率为每分钟执行一次,其中通信网络(交流网的缩写)可以用* ;*/n;t1-T2;甲、乙、丙;四种形式来表示:
当C1为* 时表示每分钟都要执行脚本,C2为* 时表示每小时都要执行程式,依次类推.
当C1为T1-T2时表示从第一种网络的名称(传输率可达1.54mbps)分钟到第T2分钟这段时间内要执行,C2为T1-T2时表示从第一种网络的名称(传输率可达1.54mbps)到第T2小时都要执行,依次类推.
当C1为*/n时表示每n分钟的时间间隔执行一次,C2为*/n表示每隔n小时的间隔执行一次,依次类推.
当C1为甲、乙、丙、时表示第甲、乙、丙、分钟要执行,C2为甲、乙、丙、时表示第甲、乙、丙.个小时要执行,依次类推.
下面列举几个例子供大家参考
1:59 23 * * */home/Oracle/scripts/alert _ log _ archive。上海/发展/空21
表示每天23点59分执行脚本/home/Oracle/scripts/alert _ log _ archive。嘘
2:*/5 * * * */home/Oracle/scripts/monitoring _ alert _ log。上海/发展/空21
表示每5分钟执行一次脚本/home/Oracle/scripts/monitoring _ alert _ log。嘘
3:0 20 * * 1-5 mail-s * * * * * * * * * * * * * * Kerry @ domain。姓名/临时消息/邮件数据
周一到周五每天下午20:00 寄一封信给kerry@domain.name
......
关于/dev/null 21的解释:
0表示键盘输入
1表示标准输出。
2表示错误输出。
首先,我们创建test.sh脚本,如下所示:
#!/bin/sh
echo大家好,现在是‘约会’
date test.txt
然后再加一份工作。
* * * */home/Oracle/test . sh/home/Oracle/log . txt的默认值为1,这与以下命令一致
* * * * */home/Oracle/test . sh 1/home/Oracle/log . txt
* * * * */home/Oracle/test . sh 2/home/Oracle/log . txt
* * * */home/Oracle/test . sh 2/home/Oracle/log . txt 21
1,2将tesh.sh命令的输出重定向到log.txt,即输出内容不打印在屏幕上,而是输出到log.txt文件。如果需要追加而不是覆盖,可以使用。
21是将错误输出重定向到标准输出。然后将标准输入重定向到log.txt文件
1表示文件描述1,表示标准输出。如果这里缺少它,它就变成数字1,这意味着重定向到文件1。
注意事项:
配置定时任务时,需要注意两个问题:
1:在SHELL中设置必要的环境变量;例如,一个shell脚本手动执行OK,但是当它被配置为后台作业时,无法获取ORACLE的环境变量。这是因为Crontab环境变量的问题。默认情况下,crontab的环境不包含系统中当前用户的环境。因此,您需要在shell脚本中添加必要的环境变量设置。
2.尝试对所有文件使用完整路径,避免使用相对路径。
以上Linux crontab定时任务配置方法(详细讲解)是边肖分享的全部内容。希望能给你一个参考,多多支持我们。