当前位置:

CentOS 7 定时任务 crontab

访客 2024-04-24 447 0

本文是基于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

定时任务参数说明:

  • #.----------------分钟,取值范围为0-59
  • #|.-------------小时,取值范围为0-23
  • #||.----------日,取值范围为1-31
  • #|||.-------月,取值范围为1-12
  • #||||.----星期,取值范围为0-7,0和7都表示星期日
  • #|||||.--要执行的命令
  • #||||||
  • 019***bash/root/test.sh
  • 到达指定时间之后,查看/root目录下是否已经有了test.tar压缩包,如果有说明定时任务执行成功;如果没有,则说明crontab没有执行。

    发表评论

    • 评论列表
    还没有人评论,快来抢沙发吧~