Centos7&8创建计划任务

时间:2021-10-26    作者:冰城心无泪    分类: Linux基础


常用场景,重启服务器或者对服务器数据进行备份,只要我们需要定点定时周期性的事情,就可以用计划任务实现。

安装编辑器vim,当然用系统自带的编辑器vi也是可以的,个人习惯,已安装的可以略过。

yum -y install vim

在Centos7&8系统安装完成后,计划任务服务已经被默认安装,只不过是没有配置而已。

设置计划任务,编辑配置文件,配置文件为:/etc/crontab

vim /etc/crontab

以下为配置文件的默认配置

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

从配置文件中可以看出,有五个“*”,代表我们在时间和日期部分总共可以填写五个需求时间,从左至右,分钟(0 - 59) 、小时(0 - 23)、某天(1 - 31)、某月(1 - 12)、星期几(0 - 6,星期日为0或者7,也可以用sun,mon,tue,wed,thu,fri,sat来代替星期日至星期六,注意英文简写),再往下是执行命令的用户、需要执行的命令。总共七个部分。时间单位可以是分钟、小时、日、月、周以及以上的任意组合,注意:日和周不要组合

注意:可以复杂组合,“*”星号表示任意时间、“-”减号表示一个时间段范围段,如5-8点,“,”逗号表示分隔时段,“/”反斜杠代表每隔多久。计划任务可以同时配置多个。

下面举例

每隔30分钟执行reboot,重启系统,完整参数如下

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
*/30 *  *  *  * root  reboot

注:假如需要执行的是一个shell脚本,就将reboot命令替换为脚本的真实路径,如下:

*/30 *  *  *  * root  /media/backup.sh

假如需要执行多个脚本,可以将所有脚本放在同一目录下,比如都放在/media下,run-parts参数表示,执行后面目录中的所有可执行文件

*/30 *  *  *  * root run-parts /media

每晚的23:30执行reboot,重启一下系统,参数如下

30 23  *  *  * root  reboot

在每周四的上午8点到下午五点,每隔30分钟执行reboot,重启系统,参数如下

*/30 8-17  *  *  4 root  reboot

在每周四上午8点,10点及下午五点三个时间,执行reboot,重启系统,参数如下

0 8,10,17  *  *  4 root  reboot

在每个月的5号上午8点到下午五点,每隔30分钟执行reboot,重启系统,参数如下

*/30 8-17  5  *  * root  reboot

特殊参数配置,每分钟执行一次的任务

*  *  *  *  *  root  reboot

参数设置后,需要将计划任务服务随机启动并立即启动计划任务服务

 systemctl enable crond
 systemctl start crond