在使用服务器的时候经常会碰到一些任务是需要指定时间去执行的,比如释放内存、重启、检查服务状态......但往往这些任务都是在用户对服务器访问频度非常低的时间段去执行,这个时候就需要用到Linux的计划任务Crontab了。
Cron服务是一种基于时间的工作安排服务,通常在系统启动时启动。它会检查每一分钟的工作,并在它们存在时启动。
对于cron表来说,Crontab是一个配置文件。Crontab的每一行代表一个任务,包含关于运行什么和什么时候运行的信息。下面是Linux Crontan的格式:
M H DOM MON DOW Command
每当所有的时间规范字段与当前日期和时间匹配时,就会执行该命令。通常情况下,我们在时间规范字段中使用星号(*)来匹配该字段中的任何值。
打开和编辑命令:
- crontab -e
在SSH窗口中输入上述指令就可以打开定时任务的配置文件了,在配置文件中我们可以添加对应的计划任务,如下图所示:
假设我们需要添加一个定时任务:每个月的第一天凌晨2:30执行/www/nginx,我们可以在配置文件的下方添加一行内容:
- 30 02 1 * * /www/nginx
命令中从左到右:30指30分,02指凌晨2点,1指第一天,*指每个月,*指本周的每一天。
如果一个工作需要执行多次,比如凌晨两点半和下午两点半都需要执行,对于多个时间段我们可以通过(,)进行分割。如下:
- 30 02,14 1 * * /www/nginx
除了用逗号分隔两个时间点以外,我们还可以通过(-)表示一个时间段,在一个时间段内执行的计划任务格式如下:
- 30 02-14 1 * * /www/nginx
关于crontab的写法非常简单,如果你想在每个月第一天0点执行任务,还可以写成monthly /www/nginx这样的格式,但是波波一般都推荐大家的执行任务错开凌晨零点,所以这里就不介绍了,如有其他问题欢迎给波波留言哦。