![64a0f2438dd9973351087c484e3d3687.png](https://i-blog.csdnimg.cn/blog_migrate/cc877860d4f3142e8dad7b00bfe8fedd.jpeg)
01 何为计划任务
计划任务,顾名思义:计划在未来某个时间点要执行的任务,也可称为定时任务。有一次性的计划任务,也有周期性的计划任务。
一次性的计划任务就相当于待办,如今天下午三点开会,那么它只会在今天下午三点提醒一次;周期性的计划任务就和我们手机闹钟一样,如设置工作日7点整的闹钟,那么每个工作日7点整闹钟都会准时响。
但我们平常说的计划任务大多是指周期性的计划任务,用来执行那些需要重复执行的命令和工作,如定时重启、打包、清理日志等等,大大满足了日常运维需求。
在Linux中,一次性的计划任务由at和batch命令完成;而周期性的计划任务则涉及到两个服务,分别是crond和anacron。今天我们要讲的是crond服务,对应的命令是crontab命令。
crond 服务是 Linux 下用来周期地执行某种任务或等待处理某些事件的一个守护进程,和 Windows 中的计划任务有些类似。在安装完操作系统后,默认会安装 crond 服务工具,且 crond 服务默认就是自启动的。crond 服务每分钟会定期检查是否有要执行的任务,如果有,则会自动执行该任务。
02 crond配置文件
Linux下的任务调度分为两类,系统任务调度和用户任务调度,其对应的配置文件和目录也各不相同。
系统任务调度
系统任务调度,系统周期性要执行的动作,配置文件为/etc/crontab,该配置为全局性的。
可以看到,该配置文件已经在注释中告诉我们,这个配置文件是系统层面的crontab,与其他crontab不同(即用户任务调度),在编辑此文件和/etc/cron.d/目录中的文件时,不必运行crontab命令。这些文件还额外具有一个用户名字段,但其他crontab都没有。
接着就是一些环境变量的设置。SHELL变量指定使用哪种shell,PATH变量指定系统执行命令的路径。MAI