centos 7下计划任务详解之crontab

2018年09月09日 4178点热度 1人点赞

计划任务包括两种类型:
  1、一次性计划任务 :未来某个时间执行一次指定任务。
  2、周期性计划任务 :每到指定时间点就执行指定的任务,周期性重复执行。


一次性计划任务,常用有两个命令都可以实现此功能:atbatch
周期性计划任务,常用主要有有一个命令: crontab


本篇主要讲解crontab命令详细用法:

特别注意:
1、crontab计划任务的执行结果都会以邮件形式告知到执行任务的用户,可以使用mail命令查看相应邮件。
2、如果crontab计划任务中执行的命令是后安装添加的,使用该命令时一定要跟完整路径,因为如果该命令不在cron的PATH变量中,会提示找不到该命令导致任务无法正常执行(建议都加上完整路径,使用whereis命令查询)!



1、crontab安装包

centos 7.4最小化安装已经包含的cron的包,有以下三个:

cronie:主程序包,提供了crond守护进程及相关辅助工具;
cronie-anacron:cronie的补充程序;用于监控cronie任务执行状况;如cronie中任务在过去该运行的时间点未能正常运行,则anacron会随后启动一次此任务。
crontabs:包含CentOS提供系统维护任务



2、任务类型:

2.1、系统cron任务:系统维护作业(直接编辑/etc/crontab文件新增计划任务作业也能实现执行系统级的计划任务,格式和crontab -e一样)



2.2、用户cron任务:使用crontab命令
上面是定义系统cron所以需要指定以哪个用户身份来运行后面命令;但是我们如果定义用户cron本身就是针对指定用户来创建的,就不需要指定以哪个用户身份来运行了。

crontab格式:


crontab常用选项:


时间表示法:




3、创建用户cron任务(三种方法)

3.1、直接执行crontab -e命令即可为当前登入用户编辑创建计划任务(和使用vi编辑文件一样,最后使用wq保存退出即可)

root用户可以加-u选项,为指定用户创建计划任务。



3.2、编辑cron计划任务文件来创建任务
正常我们通过crontab -e命令创建的计划任务,都会记录在/var/spool/cron/目录下以用户名为名称的文件中。所以我们直接编辑该文件也能起到同样的效果(当然只有root用户有权限直接在这个目录下进行读写)


3.2.1 首先查看当前用户已定义的任务


3.2.2 查看计划任务文件


3.2.3 编辑root用户计划任务文件,新增一行内容


3.2.4 再使用crontab -l查看root用户计划任务,发现已经增加一个




3.3、从文件中导入cron任务(格式要正确,并且会覆盖当前cron任务)
3.3.1 创建一个root.cron的文件,按指定格式添加一行内容


3.3.2 使用crontab命令并后面跟上刚才创建的文件(如果格式正常,则会覆盖导入其中的计划任务)


3.3.3 再查看用户的计划任务,发现已经发生改变


3.3.4 root用户也可以加-u选项为指定用于导入计划任务文件




4、执行时间示例

4.1 每天的5点21分执行任务


4.2 每个月8号的5点21分执行任务(指定日期的时候,前面时和分也要填,不然只在日期上写的后,前面为时和分都是*,就相当于那一天的每分钟都执行任务)


4.3 每隔6分钟执行任务


4.4 每小时的15,35,55分的时候执行任务


4.5 每小时的30-40内每分钟执行一下任务


4.6 每隔10秒执行下任务




Chen

健康 · 开心 · 做自己