掌握crontab命令,linux计划任务立马搞定!
扫描二维码
随时随地手机看文章
在Linux上计划任务服务的详细说明中,我介绍了在Linux上使用at命令来添加单个计划任务的方法。 尽管at命令本质上可以运行我们的大多数日常工作场景,但它很复杂,情况更加有限。 crontab命令可以很好地解决此问题。 这就是我们向大家介绍crontab命令的主要原因。
在我们正式学习crontab命令之前,我们先来学习一下crond服务的参数的口诀“分、时、日、月、星期 命令”,这正是crond服务设置任务的参数格式,我们需要注意的是,如果有些字段没有设置,则需要使用星号(*)占位。
在学习了crond服务参数用法之后,我们来用crontab命令来创建几个计划任务。创建计划任务统一使用命令:crontab -e。
案例一:假设在每周二、四、六的早上8点1分,我们都需要通过tar打包的方式备份指定的目录文件,使其作为一个备份文件。我们该如何创建计划任务呢?我们可以使用crontab -e命令来创建计划任务。具体的实现效果的参数如crontab -l命令结果所示:
[root@redhat ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@linuxprobe ~]# crontab -l
1 8 * * 2,4,6 /usr/bin/tar -czvf etc_bak.tar.gz /etc
这里要重点为大家强调三个知识点:
1、时间段的表示
除了用逗号(,)来分别表示多个时间段,例如“8,9,12”表示8月、9月和12月。还可以用减号(-)来表示一段连续的时间周期(例如字段“日”的取值为“12-15”,则表示每月的12~15日)。以及用除号(/)表示执行任务的间隔时间(例如“*/5”表示每隔5分钟执行一次任务)。
2、命令必须用绝对路径
在crond服务的计划任务参数中,所有命令一定要用绝对路径的方式来写,如果不知道绝对路径,请用whereis命令进行查询。
3、特殊情况
计划任务中的“分”字段必须有数值,绝对不能为空或是*号,而“日”和“星期”字段不能同时使用,否则就会发生冲突。
通过crontab计划任务,可以更好的解决运维难题,极大地减少特定时间的、循环性的维护工作,减轻运维人员的运维压力。