crontab 详细用法 定时任务

一、名词解释

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令。

二、使用方式

2.1 如何添加crontab 定时任务

方式一:

]# crontab –e

# 每天早上5点运行 /root/bin/backup.sh

0 5 * * * /root/bin/backup.sh

方式二(不常用):

]# vi /etc/crontab

# 每天早上5点运行 /root/bin/backup.sh

0 5 * * * /root/bin/backup.sh

2.2 cron 描述

* * * * * command

minute hour day month week command

分 时 日 月 星期 命令

minute: 表示分钟,可以是从0到59之间的任何整数。

hour:表示小时,可以是从0到23之间的任何整数。

day:表示日期,可以是从1到31之间的任何整数。

month:表示月份,可以是从1到12之间的任何整数。

week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

Crontab 选项以下是 crontab 的有效选项:crontab –e : 修改 crontab 文件. 如果文件不存在会自动创建。 crontab –l : 显示 crontab 文件。 crontab -r : 删除 crontab 文件。crontab -ir : 删除 crontab 文件前提醒用户。

2.3 示例

# 在 12:01 a.m 运行,即每天凌晨过一分钟。这是一个恰当的进行备份的时间,因为此时系统负载不大。

1 0 * * * /root/bin/backup.sh

# 每个工作日(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

# 每5分钟运行一次命令

*/5 * * * * /root/bin/check-status.sh

# 每个月的第一天 1:10 p.m 运行

10 13 1 * * /root/bin/full-backup.sh

# 每个工作日 11 p.m 运行。

0 23 * * 1-5 /root/bin/incremental-backup.sh

# 每隔一分钟执行一次脚本 /opt/bin/test-cron.sh

*/1 * * * * root /opt/bin/test-cron.sh

# 每周六、周日的3点10分执行hello程序。

10 3 * * 0,6 hello

# 从周四到周六的4点15分执行hello程序。

15 4 * * 4-6 hello

# 每周日凌晨4点,更新系统

0 4 * * 0 root emerge --sync && emerge -uD world

#每月1号凌晨2点,清理/tmp下的文件

0 2 1 * * root rm -f /tmp/*

#每年5月6日给robin发信祝他生日快乐

0 8 6 5 * root mail robin < /home/galeki/happy.txt

假如,我想每隔2分钟就要执行某个命令,或者我想在每天的6点、12点、18点执行命令,诸如此类的周期,可以通过 “ / ” 和 “ , ” 来设置:

# 每两分钟就执行

*/2 * * * * hello

# 每天6点、12点、18点执行hello

0 6,12,18 * * * hello

# 晚上11点到早上8点之间每两个小时,早上八点执行一个命令

0 23-7/2,8 * * * echo "have a good dream:)" >> /tmp/test.txt

# 每个月的4号与每个礼拜的礼拜一到礼拜三的早上11点

0 11 4 * 1-3 command line

# 每晚的21:30重启apache。

30 21 * * * /usr/local/etc/rc.d/lighttpd restart

# 每月1、10、22日的4 : 45重启apache。

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

# 每周六、周日的1 : 10重启apache

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart

# 每天18 : 00至23 : 00之间每隔30分钟重启apache。

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart

# 每一小时重启apache

* */1 * * * /usr/local/etc/rc.d/lighttpd restart

# 晚上11点到早上7点之间,每隔一小时重启apache

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart

# 在 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"

# 每天早上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

声明:本文仅用于学习,不用于其他用途

转自:https://www.cnblogs.com/aminxu/p/5993769.html

Copyright © 2088 下届世界杯_看世界杯 - rcysbj.com All Rights Reserved.
友情链接