本文是基于CentOS7,其他Linux发行版可能略有不同。
crontab适用场景
crontab用于提交和管理执行周期性的任务。
例如你需要在每天凌晨1点重启服务器,那么crontab可以很方便的帮你执行重启操作。
再例如,你要每隔5分钟检查某个服务是否在运行,也可以使用crontab来实现。
crontab使用
1、安装crontab
一般CentOS会默认安装了crontab,执行下面命令,查看是否安装:
rpm-qa|grepcrontab
如果查询结果类似于下面,说明已安装:
crontabs-1.11-6.20121102git.el7.noarch
如果结果为空,说明没有安装,执行下面命令进行安装即可:
yuminstall-ycrontabs
2、crontab常用命令
查看crontab运行状态:
systemctlstatuscrond
如果显示结果为Active:active(running)则表示运行中,Active:inactive(dead)表示未运行。
如果crontab未运行,可以通过下面命令设置开机自启和启动。
设置crontab开机自启:
systemctlenablecrond
启动crontab:
systemctlstartcrond
查看当前用户的定时任务:
crontab-l
3、设置定时任务
这里我们以一个「每天晚上定时将指定文件夹打包成压缩包」的任务为例,说明设置定时任务的步骤。
首先,在root目录下创建一个test文件夹:
mkdirtest
然后在root下创建一个脚本test.sh:
vim/root/test.sh
按i进入编辑状态,粘贴下面内容:
#!/bin/bash
tar-zcvftest.tar/root/test
按Esc键,再输入:wq保存文件。
执行下面命令即可编辑当前用户的定时任务:
crontab-e
假如我想在每天19:00的时候压缩test文件夹,那么可以按下i进入编辑状态,粘贴下面内容:
019***bash/root/test.sh
按Esc键,再输入:wq保存,当然你也可以修改为临近的时间,测试是否生效。
通过crontab-l可查看到已保存的定时任务:
019***bash/root/test.sh
定时任务参数说明:
到达指定时间之后,查看/root目录下是否已经有了test.tar压缩包,如果有说明定时任务执行成功;如果没有,则说明crontab没有执行。