首页
Linux教程
Linux实战教程
Shell教程
Mysql教程
Keepalived教程
Linux基础教程
Linux进阶教程
运维题库
运维干货
视频教程
运维资讯
资源下载
关于我们
首页 Linux进阶教程2.19 Linux定时任务

2.18 Linux网络配置

2.20 Linux安全配置

1.1 定时任务介绍

固定时间、或者周期性的执行一项任务便是定时任务

通常使用 cron 定时任务

1)为什么要用定时任务

  1. 每天0晨要备份数据库的数据,存储的数据,配置文件
    运维人员改过的配置,软件配置,内核参数配置,用户存放的数据都需要备份。
  2. 数据报表统计
  3. 定时发微信、邮件
  4. 每分钟,每小时执行,人为没有精力的

2)cron 定时任务介绍

  • cron 定时任务软件依赖于 crond 服务
  • 通过 crontab 命令可以配置周期性执行的定时任务工作计划,例如:每五分钟做一次服务器时间同步
  • 要使得 crontab 命令设定的配置生效,还需要先启动一个服务 crond 才行

1.2 crontab 命令

1.2.1 常用参数

参数 作用
-l 查看定时任务列表
-e 编辑定时任务列表

1.2.2 配置文件

1)/var/spool/cron/

定时任务在 /var/spool/cron/ 以用户名字命名的文件,文件里就是定时任务的指令

  • 用root配置的定时任务 /var/spool/cron/root(是要备份的)
  • 用oldboy配置的定时任务 /var/spool/cron/oldboy

2)/etc/cron.deny

该文件中所列用户不允许使用 crontab 命令,不常用

3)/etc/cron.allow

该文件中所列用户允许使用 crontab 命令,优先于 /etc/cron.deny

1.3 定时任务

1.3.1 定时任务书写格式

*    *    *    *    *   cmd
-    -    -    -    -    -
|    |    |    |    |    |
|    |    |    |    |    +----- 执行的命令或者脚本
|    |    |    |    +---------- 星期中星期几 (0 - 7) (0 和 7 皆为星期日)
|    |    |    +--------------- 月份 (1 - 12) 
|    |    +-------------------- 一个月中的第几天 (1 - 31)
|    +------------------------- 小时 (0 - 23)
+------------------------------ 分钟 (0 - 59)

1.3.2 定时任务书中特殊字符含义

特殊符号 含义
* *号,表示任意时间都,实际就是“每”的意思。举例:
减号,表示分隔符,表示一个时间范围,区间段
, 逗号,表示分隔时段的意思。
/n n代表数字,即“每隔n单位时间”

1.3.3 定时任务依赖服务

# systemctl start crond
# systemctl enable crond
  1. 在编辑定时任务文件后,无需重启定时任务,crond 会自动检查更改的变化
  2. 当定时任务不能正确执行时,请查看定时任务日志文件(/var/log/cron)获取故障信息

1.3.4 定时任务Cron的使用实例

oldboy.sh 脚本内容

echo "oldboy" >>/tmp/test.txt

实例1:每1分钟执行执行oldboy.sh脚本

* * * * * /bin/sh /scripts/oldboy.sh

实例2:每小时的第3和第15分钟执行执行oldboy.sh脚本

3,15 * * * * /bin/sh /scripts/oldboy.sh

实例3:在上午8点到11点的第3和第15分钟执行执行oldboy.sh脚本

3,15 8-11 * * * /bin/sh /scripts/oldboy.sh

实例4:每隔两天的上午8点到11点的第3和第15分钟执行执行oldboy.sh脚本

3,15 8-11 */2  *  * /bin/sh /scripts/oldboy.sh

实例5:每周一上午8点到11点的第3和第15分钟执行执行oldboy.sh脚本

3,15 8-11 * * 1 /bin/sh /scripts/oldboy.sh

实例6:每晚的21:30执行oldboy.sh脚本

30 21 * * * /bin/sh /scripts/oldboy.sh

实例7:每月1、10、22日的4 : 45执行oldboy.sh脚本

45 4 1,10,22 * * /bin/sh /scripts/oldboy.sh

实例8:每周六、周日的1 : 10执行oldboy.sh脚本

10 1 * * 6,0 /bin/sh /scripts/oldboy.sh

实例9:每天18 : 00至23 : 00之间每隔30分钟执行oldboy.sh脚本

0,30 18-23 * * * /bin/sh /scripts/oldboy.sh

实例10:每星期六的晚上11 : 00 pm执行oldboy.sh脚本

0 23 * * 6 /bin/sh /scripts/oldboy.sh

实例11:每一小时执行oldboy.sh脚本

0 */1 * * * /bin/sh /scripts/oldboy.sh

实例12:晚上11点到早上7点之间,每隔一小时执行oldboy.sh脚本

0 23-7/1 * * * /bin/sh /scripts/oldboy.sh

1.4 生产环境定时任务书写要领

  1. 为定时任务规则加必要的注释
  2. 尽量以脚本形式执行
  3. 在执行的Shell脚本前加上/bin/sh
  4. 定时任务配置结尾加>/dev/null 2>&1
  5. 在指定用户下执行相关定时任务
  6. 生产任务计划程序中不要随意打印输出信息
  7. 执行的脚本要存放到规范路径下
  8. 配置定时任务要规范操作过程,减少出错
  9. 定时任务脚本中程序命令及路径尽量用全路径
  10. 时间变量%号要用反斜线转义
  11. 若脚本中调用了系统环境变量,要重新定义

1.5 调试cron定时任务的技巧总结

  1. 增加执行任务频率调试任务
  2. 调整系统时间调试任务(不能用于生产环境)
  3. 通过重定向日志输出调试定时任务
  4. 通过/var/log/cron来调试任务

本文链接:https://www.yunweibase.com/archives/710

2.18 Linux网络配置

2.20 Linux安全配置

网友评论comments

发表评论

邮箱地址不会被公开。 必填项已用*标注

暂无评论

Copyright © 运维基地 保留所有权
扫二维码
扫二维码
返回顶部