CRONTAB概念/介绍
crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。
cron 系统调度进程。 可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业。 crontab命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。系统管理员可以通过 cron.deny 和 cron.allow 这两个文件来禁止或允许用户拥有自己的crontab文件。
1: crontab文件一般位于/etc/下,这里面存放系统运行的的调度程序。
[root@localhost cron]# more /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
2:每个用户都会生成一个自动生成一个自己的crontab文件,一般位于/var/spool/cron目录下
[root@localhost cron]# cd /var/spool/cron
[root@localhost cron]# ls
oracle root
如果你用命令crontab -r 就会删除当前用户的crontab文件,例如你切换到oracle账号下,执行了该命令,那么/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 优先。如果两个文件都不存在,那么只有超级用户可以安排作业。
但是让人纳闷的是cron.deny文件是空的,如下所示
[oracle@localhost etc]$ more cron.deny
4:cron.hourly,cron.daily,cron.monthly,cron.weekly
[oracle@localhost etc]$ ls -lrt cron*
-rw-r--r-- 1 root root 255 Sep 21 2004 crontab
-rw-r--r-- 1 root root 0 May 16 2008 cron.deny
cron.hourly:
total 0
cron.monthly:
total 8
-rwxr-xr-x 1 root root 278 Sep 29 2004 0anacron
cron.weekly:
total 16
-rwxr-xr-x 1 root root 277 Sep 29 2004 0anacron
-rwxr-xr-x 1 root root 414 Jun 6 2007 00-makewhatis.cron
cron.daily:
total 60
-rwxr-xr-x 1 root root 286 Aug 14 2004 tmpwatch
-rwxr-xr-x 1 root root 276 Sep 29 2004 0anacron
-rwxr-xr-x 1 root root 2133 Dec 1 2004 prelink
-rwxr-xr-x 1 root root 180 May 2 2006 logrotate
-rwxr-xr-x 1 root root 418 Jun 6 2007 00-makewhatis.cron
-rwxr-xr-x 1 root root 104 Aug 2 2007 rpm
-rwxr-xr-x 1 root root 121 Aug 22 2007 slocate.cron
lrwxrwxrwx 1 root root 28 May 16 2008 00-logwatch -> ../log.d/scripts/logwatch.pl
cron.d:
total 12
-rw------- 1 root root 366 Jun 12 2007 sa-update
-rw-r--r-- 1 root root 188 Jul 18 2007 sysstat
CRONTAB在线手册
注意:不同版本的Linux系统,可能crontab手册内容有所出入,请以实际版本为准。
[oracle@localhost ~]$ man crontab | more
CRONTAB语法及应用
1:查看当前用户的定时任务
[oracle@localhost ~]$ crontab -l
* * * * * /home/oracle/test.sh >/dev/null 2>&1
2:编辑当前用户的定时任务
可以在编辑状态修改、删除、新增一些定时任务。注释一般用#
[oracle@localhost ~]$ crontab -e
3:删除当前用户的定时任务
[root@localhost ~]# crontab -r
[root@localhost ~]# crontab -l
no crontab for root
4:
如下所示,一般crontab文件里面的定时任务格式如下所示:
59 23 * * * /home/oracle/scripts/alert_log_archive.sh >/dev/null 2>&1
crontab 文件中每个条目中各个域的意义和格式:
第一列 分钟: 1——59
第二列 小时: 1——23(0表示子夜)
第三列 日 : 1——31
第四列 月 : 1——12
第五列 星期: 星期0——6(0表示星期天,1表示星期一、以此类推)
第六列 要运行的命令
我们暂且用C1、C2、C3、C4、C5、C6代表这六列,前面五列通过组合方式来决定执行脚本的频率,最小频率为每分钟执行一次,其中Cn可以用 * ; */n ; T1-T2; a,b,c; 四种形式来表示:
当 C1 为 * 时表示每分钟都要执行脚本,C2 为 * 时表示每小时都要执行程式,依次类推.....
当 C1 为 T1-T2 时表示从第 T1 分钟到第 T2 分钟这段时间内要执行,C2 为 T1-T2 时表示从第 T1 到第 T2 小时都要执行,依次类推....
当 C1 为 */n 时表示每 n 分钟的时间间隔执行一次,C2 为 */n 表示每隔n小时的间隔执行一次,依次类推.....
当 C1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,C2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,依次类推....
下面列举几个例子供大家参考
1: 59 23 * * * /home/oracle/scripts/alert_log_archive.sh >/dev/null 2>&1
表示每天23点59分执行脚本/home/oracle/scripts/alert_log_archive.sh
2: */5 * * * * /home/oracle/scripts/monitoring_alert_log.sh >/dev/null 2>&1
表示每5分钟执行一次脚本/home/oracle/scripts/monitoring_alert_log.sh
3: 0 20 * * 1-5 mail -s "**********" kerry@domain.name < /tmp/maildata
周一到周五每天下午 20:00 寄一封信给 kerry@domain.name
..............................................
关于 >/dev/null 2>&1 的解释:
0表示键盘输入
1表示标准输出
2表示错误输出.
我们首先创建test.sh脚本如下:
#! /bin/sh
echo "hello, everybody, now is " `date`
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 2>&1 &
1,2将tesh.sh 命令输出重定向到log.txt, 即输出内容不打印到屏幕上,而是输出到log.txt文件中。如果你需要追加而不是覆盖,可以用 >>代替>
2>&1 是将错误输出重定向到标准输出。 然后将标准输入重定向到文件log.txt。
&1 表示的是文件描述1,表示标准输出,如果这里少了&就成了数字1,就表示重定向到文件1。
注意事项:
配置定时任务时,需要注意两个问题:
1: 在SHELL中设置了必要的环境变量;例如一个shell脚本手工执行OK,但是配置成后台作业执行时,获取不到ORACLE的环境变量,这是因为 crontab环境变量问题,Crontab的环境默认情况下并不包含系统中当前用户的环境。所以,你需要在shell脚本中添加必要的环境变量的设置
2: 尽量所有的文件都采用完全路径方式,避免使用相对路径。
相关推荐
CRONTAB概念/介绍 crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。 cron 系统调度进程。 可以使用它在每天的非高峰负荷时间段运行作业...
在大多数系统上,你必须得到系统管理员权限才可以提交...一些共享的系统上,因为只有一个crontab文件,只有管理员访问 crontab命令。为了您的Webserve帐户中启用请求的 cron,请参阅美国印第安纳大学网管 的 cron页面。
我们建议改用我们的新概念该工具在实时Linux上收集不同的工件,并将结果记录在csv文件中。 通过对这些伪像的分析,可以发现较早的不适。 所有代码都必须在python 2文件中,并且支持从2.4开始。 该程序应以root用户...
提供了基于日期、固定时间间隔以及crontab类型的任务,并且可以持久化任务。 在线文档:https://apscheduler.readthedocs.io/en/latest/userguide.html 一、安装APScheduler pip install apscheduler 二、基本概念...
1.1inux介绍.zip 1.2 openEulers安装,zip 1.3 openEuler,入门级操作,zip 2.1inux命令行基础.zip 2.2目录操作、文件操作和查看操作,zp 2.3分页查看操作和查找操作,zp 2.4压缩和打包操作,p 3.1常见文本编辑器,...
◆ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab; ◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup; ◆ 系统...
12.1.2 软件管理基本概念 319 12.2 利用apt-get管理软件包 321 12.2.1 安装软件包 323 12.2.2 系统的更新与升级 324 12.2.3 删除软件包 325 12.2.4 安装本地存储介质中的 ??软件包 325 12.2.5 sources.list配置文件 ...
12.1.2 软件管理基本概念 319 12.2 利用apt-get管理软件包 321 12.2.1 安装软件包 323 12.2.2 系统的更新与升级 324 12.2.3 删除软件包 325 12.2.4 安装本地存储介质中的 ??软件包 325 12.2.5 sources.list配置文件 ...
书由浅入深,全面、系统地介绍了Node.js开发技术。书中提供了大量有针对性的实例,供读者实践学习,同时提供了大量的实践练习题及详尽的解答,帮助读者进一步巩固和提高。本书重在代码实践,阅读时应多注重实践编程...
alias、apmd、aumix、bind、chkconfig、chroot、clock、crontab、declare、depmod、dircolors、dmesg、enable、eval、export、fbset、grpconv、grpunconv、hwclock、insmod、kbdconfig、lilo、liloconfig、lsmod、...
$ til 欢迎使用我的“今天我学到的”存储库-里面充满了简短的信息条目,供我自己参考和保留 :notebook: ...crontab指南 联网 termux远程 概念 稻草人 在脚本中停止#!/ usr / bin / env Python Python壳
一、基本概念mysql5.1版本开始引进event概念。event既“时间触发器”,与triggers的事件触发不同,event类似与linux crontab计划任务,用于时间触发。通过单独或调用存储过程使用,在某一特定的时间点,触发相关的...
12.4 用crontab管理cronfile130 12.5 当任务被调度的时候发生了什么?131 12.6 实验.131 第13章系统的关机和重起.133 13.1 课程目标错误!未定义书签。 13.2 HP-UX操作状态.133 13.3 用shutdown和reboot改变系统状态...
│ 高并发编程第二阶段08讲、并发编程的三个重要概念,原子性,可见性,有序性.mp4 │ 高并发编程第二阶段09讲、指令重排序,happens-before规则精讲.mp4 │ 高并发编程第二阶段10讲、volatile关键字深入详解.mp4...
│ 高并发编程第二阶段08讲、并发编程的三个重要概念,原子性,可见性,有序性.mp4 │ 高并发编程第二阶段09讲、指令重排序,happens-before规则精讲.mp4 │ 高并发编程第二阶段10讲、volatile关键字深入详解.mp4...
关于Event:mysql5.1版本开始引进event概念。event既“时间触发器”,与triggers的事件触发不同,event类似与linux crontab计划任务,用于时间触发。通过单独或调用存储过程使用,在某一特定的时间点,触发相关的SQL...
文章目录定时任务框架APScheduler安装概念调度流程cron 任务 最近由于要用到定时任务, 因此对APScheduler做了总结 操作系统一般都会自带定时任务,但是使用APScheduler可以进行更加高度定制的控制。 apscheduler ...
需要实时视频流技术来匹配自视频工作室的概念 AWS CloudFront用于同时流式传输到多个连接器 视频JS Instagram网格样式 实时同步的Instagram feed布局 针对移动设备(Android和iOS)和网络进行了优化 适用于具有多种...
一、OLAP多维分析概念及函数 1、cube导论 2、cube核心操作 1)、cube核心操作 2)、DICE (切块) 3)、ROLL UP (上卷) 4)、DRILL DOWN (下钻) 5)、PIVOT (旋转) 二、hive 高阶聚合函数 1、with cube...