Shell编程之定时任务

什么是定时任务

        顾名思义,定时任务指的就是在指定/特定的时间进行工作,例如备份/归档数据、清理临时文件等。

        在 Linux 中,可以使用 cron 定时器来定期执行任务。cron 是一个在后台运行的守护进程,用于根据指定的时间表自动执行任务。

在linux系统中可以使用如下命令进行安装

yum install contabs  #使用yum安装

systemctl enable crond  #设置开机自启动

systemctl start crond   #启动 crond   

service crond restart   #重启 crond

安装启动完成后可以使用如下命令检查服务状态

service crond status

crontab常用参数

常用参数
-l列出当前用户的 Crontab 配置文件中所有的定时任务条目。
-r删除当前用户所有的定时任务条目
-u指定某一个用户
-e使用默认编辑器打开当前登录用户的 Crontab 配置文件。在该配置文件中配置定时任务。

 

示例:

crontab -l -u root #查看root用户下的定时任务

crontab -e -u root #对定时任务进行维护

定时表达式

在上面的示例中可以看到定时任务表达式的基本格式

*  *  *  *  * user command

 crontab 中的五个时间字段分别代表了定时任务执行的时机:

  1.  第一个时间字段是分钟数,取值范围是 0~59;
  2. 第二个时间字段是小时数,取值范围是 0~23;
  3. 第三个时间字段是一个月中的具体日期,取值范围是 1~31;
  4. 第四个时间字段是一个月中的月份,取值范围是 1~12;
  5. 第五个时间字段是星期几,取值范围是 0~6,其中 0 表示星期日,1~6 表示星期一到星期六。

除了特定数字以外还支持如下特殊字符

符号*/-
含义任意值起始触发,后间隔触发枚举值范围值
例子在分域中表示,每分钟都匹配1/2 在分域表示起始分钟为1触发,后每间隔2分再次触发5,10 在分钟域表示5分跟10分都匹配0-23 在时域表示0点到23点这个范围都匹配

示例:在上面可以看到定时任务执行任务表达式中可以看到mk.sh,其内容如下,大致是在指定目录下根据时间戳创建文件夹,并在该文件夹下根据时间戳创建文件。

#!/bin/bash

echo "创建文件..."

timestamp=$(date +%Y%m%d%H%M%S)

backup_dir="/root/crontab/$timestamp"

mkdir -p "$backup_dir"

cd $backup_dir

touch  $timestamp.txt

echo "创建完成。"

定时任务执行结果如下:

 注意

         这里可以看到最下面有一行提示 You have new mail in /var/spool/mail/root ,这里就是执行定时任务系统记录的信息(可能是正常的输出或者是异常提示),可以使用 cat 命令进行查看

cat /var/spool/mail/root

 

        这里附上一个很有用的网址,可以根据自己的需要在线生成表达式:在线Cron表达式生成器

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值