基本说明

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

任务调度分类

  1. 系统工作,有些重要的工作必须周而复始的执行。如病毒扫描等
  2. 个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
    事先自己写好了一个脚本程序,完成某个任务,比如备份mysql数据库,Linux系统提供一种机制可以定时的调度我们的脚本或者代码,定时调用这个脚本,假如希望后半夜两点备份musql数据库,就可以利用这种机制,这种机制叫做crontab。
    如果是简单的任务可以不需要写脚本,直接在crontab中加入任务即可,对于比较复杂的任务需要写脚本(shell编程)。

基本语法

crontab [选项]

常用选项

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

crond相关指令

crontab -r:终止任务调度
crontab -l:列出当前有哪些任务调度
service crond restart [重启任务调度]

快速入门案例

要求

  1. 设置任务调度文件:/etc/crontab
  2. 设置个人任务调度,执行[crontab -e]命令
  3. 接着输入任务到调度文件中,如:/1 *ls -l /etc/ > /tmp/to.txt,意思说每小时的每分钟执行ls -l /etc/ > /tmp/to.txt命令

详细步骤

  1. 输入 [crontab -e],进入到 cd /tmp中,然后输入[/1 *ls -l /etc/ > /tmp/to.txt],按 esc键后输入指令[:wq]保存并退出。

1610803417635.png

  1. 使用指令 [ls -l]指令查看ok.txt文件

1610803417678.png

参数细节说明

5个占位符的说明

1610803417720.png

特殊符号的说明

1610803417767.png

特定时间执行任务案例

1610803417812.png

1610803417852.png

应用案例

案例1:每隔1分钟,就将当前的日期信息,追加到/tmp/mydate文件中,

  1. 先编写一个文件,/home/ crazyyang/mytask1.sh(shell脚本)
    date >> /tmp/mydate.txt
  2. 给mytask1.sh一个可执行权限
    chmod 744 mytask1.sh
  3. 输入crontab -e指令
  4. 输入/1 * /home/crazyyang/mytask1.sh

案例2:每隔1分钟,就将当前日期和日历追加到/home/mycal文件中

  1. 先编写一个文件,/home/ crazyyang/mytask2.sh(shell脚本)
    cal >> /tmp/mycal.txt
    date >>/tmp/mycal.txt
  2. 给mytask2.sh一个可执行权限
    chmod 744 mytask1.sh
  3. 输入crontab -e指令
  4. 输入/1 * /home/crazyyang/mytask2.sh

案例3:每天的凌晨2:00将mysql数据库testdb,备份到文件mydb.bak中

  1. 先编写一个文件,/home/ crazyyang/mytask3.sh(shell脚本)
    /usr/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak
  2. 给mytask3.sh一个可执行权限
    chmod 744 mytask1.sh
  3. 输入crontab -e指令
  4. 输入/1 * /home/crazyyang/mytask3.sh