Teng's blog Teng's blog
首页
Java
H5前端
GitHub (opens new window)
首页
Java
H5前端
GitHub (opens new window)
  • 介绍

  • 安装

  • 基础

    • Linux目录结构
    • vi与vim编辑器
    • 关机与重启
    • 用户登录与注销
    • 用户管理
    • 用户组管理
    • 运行级别
    • 帮助命令
    • 文件目录操作
    • 日期与时间操作
    • 搜索查找
    • 压缩与解压
    • 文件组管理
    • 文件权限管理
    • 任务调度
      • crontab 定时任务设置
        • 入门使用
        • cron 表达式说明
        • 应用案例
      • crond 相关指令
    • 磁盘分区与挂载
    • 网络配置
    • 进程管理
    • 服务管理
    • RPM与YUM
    • SSH配置
    • 附-常用快捷键
  • shell

  • 面试与总结
  • System-Linux
  • 基础
Shetengteng
2022-02-26

任务调度

作用:定时调度执行脚本或者代码,如定时调用 备份mysql 数据;对于简单的任务,可以不用编写脚本,直接在crontab中加入任务

任务调度:系统在某个时间执行特定的命令或程序

任务调度分类

  • 系统工作,有些重要的任务需要定期执行,如病毒扫描
  • 个别用户工作,用户希望执行某些程序,如对mysql进行备份

# crontab 定时任务设置

基本语法

  • crontab [选项]

选项

  • -e 编辑crontab定时任务
  • -l 查询crontab任务
  • -r 删除当前用户所有的crontab任务

# 入门使用

需求

  • 设置任务调度文件 /etc/crontab
  • 设置个人任务调度,执行crontab -e 命令
  • 输入任务到调度文件
    • 如 */1 * * * * ls -l /etc >> /tmp/to.txt
    • 每个小时,每分钟执行 ls -l /etc >> /tmp/to.txt 命令

步骤

  • crontab -e
  • */1 * * * * ls -l /etc >> /tmp/to.txt
  • 保存成功后退出程序
  • 观察每一分钟都会自动调用 ls -l /etc >> /tmp/to.txt

# cron 表达式说明

使用cron表达式+命令

说明

  • 第一个* 一小时当中的第几分钟 0-59
  • 第二个* 一天当中的第几个小时 0-23
  • 第三个* 一个月当中第几天 1-31
  • 第四个* 一年当中第几个月 1-12
  • 第五个* 一周当中星期几 0-7(0和7都表示周日)

特殊符号

  • * 表示任何时间,如第一个*就表示一小时中,每分钟都执行一次

  • , 表示不连续的时间,如"0 8,16,20 * * *",表示每日8点,16点,20点执行一次

  •    `-`   表示连续的时间范围,如"0 5 * * 1-6",表示周一到周六每日5点执行一次
    
  •    `*/n` 表示每隔多久执行一次,如"*/10 * * * *",表示每隔10分钟执行一次
    

应用实例

  • 45 22 * * * 每日22点45分执行
  • 0 17 * * 1 每周一17点执行
  • 0 5 1,15 * * 每个月1号,15号,5点执行
  • 40 4 * * 1-5 周一到周五4点40执行
  • */10 4 * * * 每日4点每10分钟执行一次
  • 0 0 1,15 * 1 每个月1号,15号,周一,0点都执行,注意:星期和几号不要同时出现,都是定义天,容易混乱

# 应用案例

  • 每隔1min 将当前日期信息追加到/tmp/mydate文件中

    • 先编写一个shell,/home/mytask.sh
    date >> /tmp/mydate
    
    1
    • 给 /home/mytask.sh一个执行权限
    chmod 744 /home/mytask.sh
    
    1
    • crontab -e
    • */1 * * * * /home/mytask.sh
  • 每隔1min,将当前日期和日历追加到 /tmp/mycal 文件中

    • 先编写一个shell文件 /home/mytask2.sh
    date >> /tmp/mycal
    cal >> /tmp/mycal
    
    1
    2
    • 给 /home/mytask2.sh 赋予执行权限
    chmod 744 /home/mytask2.sh
    
    1
    • crontab -e
    • */1 * * * * /home/mytask2.sh
  • 每日凌晨2点,将mysql数据testdb 备份到文件中mydb.bak

    • 先编写一个文件 /home/task3.sh
    /usr/local/mysql/bin/mysqldump -u root -p root testdb > /tmp/mydb.bak
    
    1
    • 给/home/task3.sh 一个执行权限
    chmod 744 /home/task3.sh
    
    1
    • crontab -e
    • 0 2 * * * /home/task3.sh

# crond 相关指令

  • crontab -l:列出当前有哪些任务调度
  • crontab -r:终止任务调度
  • service crond restart:重启任务调度
Last Updated: 2022/03/20, 10:04:55
文件权限管理
磁盘分区与挂载

← 文件权限管理 磁盘分区与挂载→

Theme by Vdoing | Copyright © 2021-2022 Shetengteng | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式