crontab入门及进阶学习笔记

crontab不是一般意义下的linux指令,它更是一个配置工具。经过这个工具,咱们能够为系统定制固定周期的任务。linux


一、crond和crontabshell

1)   crond:cron服务的守护进程,用于按期调度。服务器

2)   crontab:cron提供的UI,用于编辑调度计划。编辑器

 

二、crontab指令:工具

crontab –e:编辑已有按期调度任务,注意:该指令会启动vi编辑器进行任务编辑。spa

crontab –l:显示已有按期调度任务。日志

 

三、cron任务格式:server

使用crontab –e编辑按期调度任务时,实际上能够理解为编辑一个配置文件,经过这个文件定义要执行哪些按期任务,执行的周期如何。进程

编辑过程能够理解为:进入vi编辑界面,以一个工做表明一行来编辑,而后输入“:wq”保存便可。每项工做(每行)具备六个字段,各字段意义以下表所示,六个字段依次表示分钟、小时、天、月、周和要执行的shell命令。crontab

表明意义

分钟

小时

日期

月份

指令

数字范围

0-59

0-23

1-31

1-12

0-7

指令

 

四、特殊字符的使用:

cron任务中,有时须要设置较为复杂的任务处理逻辑,此时可能会用到以下特殊字符:

特殊字符

表明意义

*(星号)

表明任什么时候候都接受。例如:30 10 * * * command中,day,month和week均为“*”,表示不管哪一天、哪一个月、周几,都在10点30分执行命令。

,(逗号)

表明多个并列时间。例如:* 3,6,9,12 * * * command,表示在3点,6点,9点或12点,执行命令。

-(减号)

表明连续区间。例如:* 9-17 * * * command,表示从9点到17点,每一分钟都要执行这个任务。

/n(斜线)

表明每隔n个单位之间。例如:*/5 * * * * command,其中用*与/5来搭配,表示每隔5分钟执行指令;也能够写成 0-59/5 ,做用相同。


五、举例: 

# 每周五17点整,提醒全部组员发周报:

>crontab –e #进入编辑界面

0 17 * * 5 mail all_members < weekily_report_notify


#每周一00:30统计上周的服务器使用状况,结果保存到以日期命名的文件:

>crontab –e #进入编辑界面

30 0  * * 1 /home/get_server_usage.sh> server_usage_`date +"\%Y\%m\%d"`.txt

#注意其中%的处理,须要在前面加反斜杠\进行转义。

 

六、注意事项:

P.S.: crontab命令中的待执行脚本最好使用绝对路径。

P.S.: “周”这一栏中0和7都表明周日。

P.S.: cron调度的最小频率为1分钟。

P.S.: 每月的最后一日没法由crontab直接支持,须要经过脚本判断。

P.S.:若是crontab运行出错,能够查看日志文件/var/log/syslog,追溯问题。

相关文章
相关标签/搜索