# 5. 任务调度

# 5.1 理论部分

# 5.2 实操部分

该部分主要将如何定制定时任务。

# 5.2.1 原理示意图

image-20201111154112016

  • 任务调度:是指系统在某个时间执行的特定的命令或程序。
  • 任务调度分类
    • 系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等;
    • 个别用户工作:个别用户可能希望执行某些程序,比如对 mysql 数据库的备份。

# 5.2.2 基本语法

操作任务调度

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

重启任务调度

service crond restart

# 5.2.3 快速入门

需求:

每分钟执行一次 ls –l /etc/ > /tmp/to.txt 命令

操作:

1)进入任务调度文件 /etc/crontab 所在目录 /etc:

cd /etc

2)设置个人任务调度:

crontab -e

image-20201111155422056

3)输入任务到调度文件,保存退出

image-20201111155516405

这样每一分钟系统都会自动的调用 ls -l /etc >> /tmp/to.txt

4)等几分钟后查看 /tmp/to.txt 文件

image-20201111155653492

# 5.2.4 五个占位符说明

image-20201111155727563

# 5.2.5 特殊符号说明

image-20201111155924754

# 5.2.6 特定时间执行任务案例

image-20201111155959930

# 5.2.7 几个例子

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

1)先写一个 shell 脚本文件 /home/mytaks1.sh

​ date >> /tmp/mydate

2)给 mytask1.sh 一个可执行权限

​ chmod 744 /home/mytask1.sh

3)编辑任务调度 crontab -e

4)输入 */1 * * * * /home/mytask1.sh

5)完成

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

1)写一个 shell 脚本文件 /home/mytask2.sh

​ /usr/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak

2)给 mytask2.sh 一个可执行权限

​ chmod 744 /home/mytask2.sh

3)编辑任务调度 crontab -e

4)输入 0 2 * * * /home/mytask2.sh

5)完成

上次更新: 8/28/2022, 11:43:26 PM