crontab定时任务时间格式设置
crontab定时任务时间格式设置
使⽤crontab你可以在指定的时间执⾏⼀个shell脚本或者⼀系列Linux命令。例如系统管理员安排⼀个备份任务使其每天都运⾏如何往 cron 中添加⼀个作业?
# crontab –e
0 5 * * * /root/bin/backup.sh
这将会在每天早上5点运⾏ /root/bin/backup.sh
Cron 各项的描述
以下是 crontab ⽂件的格式:
{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
o minute: 区间为 0 – 59
o hour: 区间为0 – 23
o day-of-month: 区间为0 – 31
o month: 区间为1 – 12. 1 是1⽉. 12是12⽉.
o Day-of-week: 区间为0 – 7. 周⽇可以是0或7.
qq空间关闭
Crontab ⽰例
1. 在 12:01 a.m 运⾏,即每天凌晨过⼀分钟。这是⼀个恰当的进⾏备份的时间,因为此时系统负载不⼤。
1 0 * * * /root/bin/backup.sh
2. 每个⼯作⽇(Mon – Fri) 11:59 p.m 都进⾏备份作业。
59 11 * * 1,2,3,4,5 /root/bin/backup.sh
下⾯例⼦与上⾯的例⼦效果⼀样:
59 11 * * 1-5 /root/bin/backup.sh
3. 每5分钟运⾏⼀次命令
*/5 * * * * /root/bin/check-status.sh
4. 每个⽉的第⼀天 1:10 p.m 运⾏
10 13 1 * * /root/bin/full-backup.sh
5. 每个⼯作⽇ 11 p.m 运⾏。
0 23 * * 1-5 /root/bin/incremental-backup.sh
Crontab 选项
以下是 crontab 的有效选项:
o crontab –e : 修改 crontab ⽂件. 如果⽂件不存在会⾃动创建。
o crontab –l : 显⽰ crontab ⽂件。
o crontab -r : 删除 crontab ⽂件。
妇女节放假属法定半天节假日o crontab -ir : 删除 crontab ⽂件前提醒⽤户。
以上就是crontab命令的具体使⽤⽅法了。
在linux平台上如果需要实现任务调度功能可以编写cron脚本来实现。
以某⼀频率执⾏任务
linux缺省会启动crond进程,crond进程不需要⽤户启动、关闭。
crond进程负责读取调度任务并执⾏,⽤户只需要将相应的调度脚本写⼊cron的调度配置⽂件中。
crond进程负责读取调度任务并执⾏,⽤户只需要将相应的调度脚本写⼊cron的调度配置⽂件中。
cron的调度⽂件有以下⼏个:
1. crontab
2. cron.d
3. cron.daily
4. cron.hourly
5. hly
6. cron.weekly
如果⽤的任务不是以hourly monthly weekly⽅式执⾏,则可以将相应的crontab写⼊到crontab 或cron.d⽬录中。
⽰例:
每隔⼀分钟执⾏⼀次脚本 /opt/bin/test-cron.sh
可以在cron.d新建脚本 echo-date.sh
内容为
*/1 * * * * root  /opt/bin/test-cron.sh
在指定的时间运⾏任务
也可以通过at命令来控制在指定的时间运⾏任务
如:
at -f test-cron.sh -v 10:25
其中-f 指定脚本⽂件, -v 指定运⾏时间
quote:ea946d690b="lophyxp"]⾸先⽤
contab -l &p
导出contab的配置。
然后编辑p⽂件。以⼀下格式添加⼀⾏:
分钟 ⼩时 天 ⽉ 星期 命令
⽐如
10 3 * * 0,6 hello
就是每周六、周⽇的3点10分执⾏hello程序。
15 4 * * 4-6 hello
就是从周四到周六的4点15点执⾏hello程序。
然后⽤
p
命令导⼊新的配置。
⼀般不建议直接修改/etc/下的相关配置⽂件。
启动cron进程的⽅法:/etc/init.d/crond start
开机就启动cron进程的设置命令:chkconfig --add crond
⽅法⼆:
公司注册
把cron加⼊到启动脚本中:
# rc-update add vixie-cron default
crontab -l #查看你的任务
crontab-e#编辑你的任务生发产品排行榜10强
crontab-r#删除⽤户的crontab的内容
实例讲解⼆:
系统cron设定:/etc/crontab
通过 /etc/crontab ⽂件,可以设定系统定期执⾏的任务,当然,要想编辑这个⽂件,得有root权限
0 7  *    *  *    root    mpg123 ~/wakeup.mp3
分 时 ⽇ ⽉ 周
⽰例:
0 4  * * 0    root emerge --sync && emerge -uD world              #每周⽇凌晨4点,更新系统
0 2 1 * *    root  rm -f /tmp/*                                                    #每⽉1号凌晨2点,清理/tmp下的⽂件
0 8 6 5 *  root    mail  robin < /home/            #每年5⽉6⽇给robin发信祝他⽣⽇快乐
假如,我想每隔2分钟就要执⾏某个命令,或者我想在每天的6点、12点、18点执⾏命令,诸如此类的周期,可以通过 “ / ” 和 “ , ”来设置:
*/2  *  *  *  *          root      ...............      #每两分钟就执⾏........
0 6,12,18  *  *  *    root      ...............      #每天6点、12点、18点执⾏........
0 6,12,18  *  *  *    root      ...............      #每天6点、12点、18点执⾏........
每两个⼩时
0 */2 * * * echo "have a break now." >> /
晚上11点到早上8点之间每两个⼩时,早上⼋点
0 23-7/2,8 * * * echo "have a good dream:)" >> /
每个⽉的4号与每个礼拜的礼拜⼀到礼拜三的早上11点
0 11 4 * 1-3 command line
1⽉1⽇早上4点
0 4 1 1 * command line
收获:可以把经常要做的⼀些事放到其中,简化⼯作量,如每周⼀检查服务器的运⾏状态,查看报告,杀掉⼀些进程等等……
*  *  *  *  *  command
分 时 ⽇ ⽉ 周 命令
第1列表⽰分钟1~59 每分钟⽤*或者 */1表⽰
第2列表⽰⼩时1~23(0表⽰0点)
第3列表⽰⽇期1~31
第4列表⽰⽉份1~12
第5列标识号星期0~6(0表⽰星期天)
第6列要运⾏的命令
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
满分作文600字名称 : 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 6-12/3 * 12 * /usr/bin/backup
周⼀到周五每天下午 5:00 寄⼀封信给  :
0 17 * * 1-5 mail -s "hi"  < /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.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。