crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

语法

crontab(选项)(参数)

选项

-e:编辑该用户的计时器设置;
-l:列出该用户的计时器设置;
-r:删除该用户的计时器设置;
-u<用户名称>:指定要设定计时器的用户名称。

Crontab是用于安装,卸载或列出用于驱动Vixie Cron中的cron守护程序的表的程序。
每个用户都可以拥有自己的crontab,虽然这些是/ var中的文件,但它们并不是直接编辑的。

如果给出-u选项,则它指定要调整其crontab的用户的名称。如果未给出此选项,crontab将检查“您的”crontab,即执行命令的人员的crontab。请注意,su可能会混淆crontab,如果你在su内部运行,你应该总是使用-u选项以保证安全。

cron 文件 使用如果伪文件名从一些指定的文件或标准输入安装一个新的crontab -中给出。

每个用户都有自己的crontab,任何给定的crontab中的命令都将作为拥有crontab的用户执行

minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

在以上各个字段中,还可以使用以下特殊字符:

星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

实例

每天凌晨5分运行

 5 0 * * *       $HOME/bin/daily.job >> $HOME/tmp/out 2>&1

每天12:59运行/usr/bin/test.sh

59 12 * * * simon /usr/bin/test.sh > /dev/null 2>&1

每天晚上9点(21:00)运行demo.sh

0 21 * * * demo.sh 1>/dev/null 2>&1

每周二到周六凌晨1点(01:00)运行

0 1 * * 2-7 demo.sh 1>/dev/null 2>&1

在07:30,09:30 13:30和15:30 运行demo.sh

30 07,09,13,15 * * * demo.sh

crontab 命令实例:

linux命令:crontab -e 30 0 * * * root find /tmp -type f -empty -delete -delete -empty f -type /tmp find root * * * 0 -e 30 crontab crontab -e 30 0 * * * root find /tmp -type f -empty -deleterootopen.com
linux命令:crontab -e 30 0 * * * root find /tmp -type f -empty -delete -delete -empty f -type /tmp find root * * * 0 -e 30 crontab crontab -e 30 0 * * * root find /tmp -type f -empty -deleterootopen.com
2018-08-19 22:24:49

linux命令:crontab -r -r crontab crontab -rrootopen.com
linux命令:crontab -r -r crontab crontab -rrootopen.com
2018-08-19 22:22:04

linux命令:crontab -u tecmint -l -l tecmint -u crontab crontab -u tecmint -lrootopen.com
linux命令:crontab -u tecmint -l -l tecmint -u crontab crontab -u tecmint -lrootopen.com
2018-08-19 22:20:21

linux命令:crontab -e -e crontab crontab -erootopen.com
linux命令:crontab -e -e crontab crontab -erootopen.com
2018-08-19 22:19:30

linux命令:crontab -l -l crontab crontab -lrootopen.com
linux命令:crontab -l -l crontab crontab -lrootopen.com
2018-08-19 22:16:23

linux命令:crontab -e -e crontab crontab -erootopen.com
linux命令:crontab -e -e crontab crontab -erootopen.com
2018-03-10 03:53:48

linux命令:crontab -l | sed -e '$G;$s-$-'"$CRON_MINS $CRON_HOUR"' * * * /usr/bin/command >/dev/null 2>&1-' | crontab - - crontab | 2>&1-' >/dev/null /usr/bin/command * * * $CRON_HOUR"' '$G;$s-$-'"$CRON_MINS -e sed | -l crontab crontab -l | sed -e '$G;$s-$-'"$CRON_MINS $CRON_HOUR"' * * * /usr/bin/command >/dev/null 2>&1-' | crontab -rootopen.com
linux命令:crontab -l | sed -e '$G;$s-$-'"$CRON_MINS $CRON_HOUR"' * * * /usr/bin/command >/dev/null 2>&1-' | crontab - - crontab | 2>&1-' >/dev/null /usr/bin/command * * * $CRON_HOUR"' '$G;$s-$-'"$CRON_MINS -e sed | -l crontab crontab -l | sed -e '$G;$s-$-'"$CRON_MINS $CRON_HOUR"' * * * /usr/bin/command >/dev/null 2>&1-' | crontab -rootopen.com
2018-03-28 01:47:48

linux命令:crontab -l -u USER | grep -v 'YOUR JOB COMMAND or PATTERN' | crontab -u USER - - USER -u crontab | PATTERN' or COMMAND JOB 'YOUR -v grep | USER -u -l crontab crontab -l -u USER | grep -v 'YOUR JOB COMMAND or PATTERN' | crontab -u USER -rootopen.com
linux命令:crontab -l -u USER | grep -v 'YOUR JOB COMMAND or PATTERN' | crontab -u USER - - USER -u crontab | PATTERN' or COMMAND JOB 'YOUR -v grep | USER -u -l crontab crontab -l -u USER | grep -v 'YOUR JOB COMMAND or PATTERN' | crontab -u USER -rootopen.com
2018-02-08 17:46:48

Linux的Bash命令行(A-Z排序)