名称 : 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.
M: 分钟(0-59)。
H:小时(0-23)。
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/3 6-12 * 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.
------------------------------------------
在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup :
0 6-12/3 * 12 * /usr/bin/backup
这个是错的。
应该是0/3 6-12 * 12 * /usr/bin/backup
----------------------------------------
Linux 任务计划之crontab命令
前几天,由于要备份ORACLE数据,学用了一下crontab命令,摘录在此以备忘。
相比用于安排一次性任务的at命令,crontab命令主要是用于安排一些周期性的任务,
比如 定期备份数据、定时杀毒、定期清理垃圾文件等。 Linux中的cron进程是一个主要的系统调度进程,
可以在后台自动完成用户指定的任务 计划。它每分钟检查一遍各个用户的“”任务计划书“”--也就是crontab文件,
如果计划书 中所指定的运行条件满足,就立即为用户执行计划书中的任务。那么,这个计划书放在哪儿 呢?
就放在/var/spool/cron/crontabs目录下面。这些计划书是什么样的文件,有什么特别 之外吗?其实它们就只是普通的文本文件,唯一的不同是有两点要求:
1. 命名:计划书的名称与计划书所属的用户名相同。
2. 格式: minute hour day month weekday command
取值范围: (0-59) (0-24) (1-31) (1-12) (0-6)
系统提供了几个特殊符号,使得时间的表示很灵活: *、/、&和-,其中*代表取值范围内的所有数字,/代表每的意思,*/5表示每5个单位,-表示 指定的时间段,","用于列举多个数字。
举例说明:
0 0 * * 1 echo Monday >> /home/test.txt ---每个星期一凌晨执行
* * * * date >> /home/date.txt ---每分钟执行一次
*/10 * * * 1-3 echo "ten minutes pasted" >> /home/time.txt ---星期一到三每10分钟执行一次。
通常,系统并不允许用户直接编辑计划书,/var/spool/cron/crontabs目录也只有root用户 才可读写。为了方便计划书的管理,系统提供了crontab命令:
用法:
crontab [ -u user ] 文件名
crontab [ -u user ] { -l | -r | -e }
-u 计划书所属的用户,默认为当前用户
-l 列出当前计划书的内容
-e 编辑计划书,系统默认的编辑器是vi。保存时,系统会检查格式是否符合要求。
-r 删除计划书
举例说明:
#crontab -u oracle /home/oracle/plan.txt 将plan.txt提交为用户oracle的计划书
#crontab /home/myplan.txt 将myplan.txt提交为当前用户的计划书 #contab -r 清除当前的计划书
几点补充:
1. 环境变量,cron进程执行任务时,并不加载计划书所属用户的环境变量,
只加载几个最 基本的环境变量,比如执行任务的sh,$HOME,$MAILTO等。
这几个环境变量的定义是在 /etc/crontab文件中。其中$MAILTO是指定计划执行过程中发生错误或者有数据输出时发 送邮件到哪个用户。
2. 不能运行crontab命令或者计划没有被执行,crontab的权限设置是由两个文件来决定的 :/etc/cron.allow, /etc/cron.deny。
如果存在/etc/cron.allow,则把要执行计划的 用户名称添加到其中;
若/etc/cron.deny存在,则确保要执行计划的用户名称不在 /etc/cron.deny中;如果两个文件都存在,/etc/cron.allow优先。
3. crontab 文件名,提交了新计划文件之后,原来的计划是否还在呢?答案是否定的。这 种方法进行的是完全覆盖,而非追加。
同时要说明的是,当运行命令:crontab newplan.txt 之后,系统复制了一份newplan.txt的内容用来创建该用户的计划书,
存 放到/var/spool/cron/crontabs目录下,newplan.txt与计划之间并无联系。但建议将其 保留,作为计划书的副本。
当要修改计划时,可先修改newplan.txt,然后再提交为新计划。
4. 计划书的输出和日志,如果用户的计划书在运行时有输出,用户是无法直接从终端上看 到的。
cron进程会将执行计划时产生的所有输出数据和错误信息发送到指定用户的邮箱 ,用户可到邮箱中去查看,所以建议在计划中把有用的输出数据重定向到文件中。
要想 查看各个计划的执行情况,可以查看cron进程的日志文件:/var/log/cron。
5. 更简单的任务计划, 如果觉得这样麻烦,还有一种简单的方法。
/etc下面有4个目录: cron.hourly,cron.daily,cron.weekly,cron.weekly,
这4个目录下脚本的执行周期 分别是每小时,每天,每周,每月。根据自己的需要,将要运行的脚本直接放置到对应 的目录下即可,系统会自动为你完成任务。
--------------------------------------------------------------------
同时,如果想取消cron任务,有3种途径:
1、crontab -e 删除计划任务(将内容全部清空)
2、crontab -r 由crontab直接删除
2、删除脚本文件(可选)
3、删除 /var/spool/cron/用户名 (可选)
------------------------------------------------------------------
为用户添加一个计划任务
1、crontab -e
用于设定时间执行脚本
etc: 36 1 * * 0 /root/test
2、cd ~
进入root主目录,格式化的建立脚本文件
3、chmod +x filename
添加可执行权限
上面这种是用命令的方式。
---------------------------------------------------------------
下面是用配置文件的方式
1.以root用户登陆,进入到/var/spool/cron/目录
2.在目录下面新建文件,文件名为用户名。
例如为root用户增加计划 touch root (vi root也行)
3.在新建的文件中输入CronExpress 触发的时间表达式
如
#每天凌晨2点15分执行任务
15 2 * * * 执行的命令(或者Shell脚本)
完成后,保存文件
4.如果是脚本,则编写Shell脚本,需要添加可执行的权限 chmod +x fileName
5.crontab -u 用户名 -l 可以查看用户的crontab计划
分享到:
相关推荐
Linux中定时计划任务crontab使用实例linux操作系统电脑资料.doc
下面小编就为大家带来一篇linux crontab 实现每秒执行的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
# crontab -e * */1 * * * /home/lfzhou/vhost/vhost /sbin/service crond stop //关闭服务 /sbin/service crond start //启动服务 或 /sbin/service crond reload //重新载入配置 cron是一个linux下的定时执行工具...
linux下计划任务crontab的参数详细说明和实例参考,谢谢
主要介绍了Linux Crontab 获取环境变量的配置实例解析,需要的朋友可以参考下
本篇文章主要是介绍了Linux中使用crontab命令启用自定义定时任务实例,感兴趣的小伙伴们可以参考一下。
本文实例讲述了Linux环境使用crontab命令设置定时周期性执行任务。分享给大家供大家参考,具体如下: 从linux帮助中查看crontab命令有以下参数: -u username:指定用户操作定时器 -e:编辑定时器(所有) -l:...
主要介绍了使用Linux下的crontab进行MySQL定时备份的例子,需要的朋友可以参考下
一、编写Shell脚本crontab.sh #!/bin/bash step=1 #间隔的秒数,不能大于60 for (( i = 0; i < 60; i=(i+step) )); do $(php '/home/www/php/crontab/crontab.php') sleep $step done exit 0 二、crontab -e ...
入门学习Linux常用必会60个命令实例详解 Linux必学的60个命令 Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不...
主要介绍了Python使用crontab模块设置和清除定时任务操作,结合实例形式分析了centos7平台上Python安装、python-crontab模块安装,以及基于python-crontab模块的定时任务相关操作技巧,需要的朋友可以参考下
1、crontab执行配置 * * * * * cd /项目目录 && ./auto_start.sh >> /log/auto.out 2、Shell脚本 #!/bin/bash #导入环境变量 export LANG=en_US.UTF-8 export JAVA_HOME=/usr/local/java export C
以下操作均是在ubuntu 下操作的,亲测有效,其他的linux系统还望亲们自己去查。鞠躬感谢! 1、进入crontab文件的编写状态: crontab -e 2、第一次进入编写crontab文件的界面,系统会提示选择相应的编辑器,一般我们...
主要介绍了php判断linux下程序问题,可有效的控制Linux下crontab控制程序定时执行时资源调配问题,非常具有实用价值,需要的朋友可以参考下
17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 expr用法 157 17.5.1 增量计数 158 17.5.2 数值测试 158 17.5.3 模式匹配 158 17.6 小结 159 第18章 控制流结构 160 18.1 退出状态 160 ...