第 7 章、实操篇 crond 任务调度

1、原理示意图

可在 crontab 中进行定时任务的设置。

2、概述

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

任务调度分类:

  • 1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
  • 2.个别用户工作:个别用户可能希望执行某些程序,比如对 mysql 数据库的备份。

3、基本语法

crontab [选项]

3.1、常用选项

参数 作用描述
-e 编辑 crontab 任务
-l 查询 crontab 任务
-r 删除当前用户的所有 crontab 任务

4、快速入门

4.1、任务的要求

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

4.2、步骤如下

  1. cron -e
  2. */ 1 * * * * ls -l /etc >> /tmp/to.txt
  3. 当保存退出后就程序。
  4. 在每一分钟都会自动的调用 ls -l /etc >> /tmp/to.txt

4.3、参数细节说明

4.3.1、5个占位符说明
位置 含义 范围
第1个 “*” 一小时当中的第几分钟 0—59
第2个 “*” 一天当中的第几小时 0—23
第3个 “*” 一个月当中的第几天 1—31
第4个 “*” 一年当中的第几月 1—12
第5个 “*” 一周当中的星期几 0—7(0、7代表星期日)
4.3.2、特殊符号的说明
特殊符号                 含 义
* 代表任何时间。比如第一个“*”就是代表一小时中每分钟都执行一次的意思;
, 代表不连续的时间。比如“0 8,12,16 * * *”命令,代表在每天的8点0分,12点0分,16点0分执行一次;
- 代表连续的时间范围;比如“0 5 * * 1-6”,代表在周一到周六的凌晨5点0分执行
*/n 代表每隔多久执行一次。比如“*/10 * * * *”,代表每隔10分钟执行一次
4.3.3、特定时间执行任务案例
时间 含 义
35 22 * * * 在 22点 35分执行命令
0 19 * * 1 每周 1的 19点 0分执行命令
0 6 1,16 * * 每月的 1号和 16号的 6点 0分执行命令
50 5 * * 1-5 每周 1到周 5的 5点 50分执行命令
*/10 3 * * * 每天的凌晨 3点,每隔 10分钟执行一次
0 0 1,15 * 1 每月 1号和 15号,每周 1的 0点 0分都会执行命令。

注意:星期几和几号最好不要同时出现,因为它们定义的都是天。非常容易让管理员混乱。

4.4、任务调度应用实例

4.4.1、案例 1:每隔 1 分钟,就将当前的日期信息,追加到 /tmp/mydate 文件中
  1. 先编写一个文件 /home/mytask1.sh date >> /tmp/mydate
  2. 给 mytask1.sh 一个可以执行权限
    chmod 744 /home/mytask1.sh
  3. crontab -e
  4. */1 * * * * /home/mytask1.sh
  5. 成功
4.4.2、案例 2:每隔 1 分钟, 将当前日期和日历都追加到 /home/mycal 文件中
  1. 先编写一个文件 /home/mytask2.sh
    date >> /tmp/mycal cal >> /tmp/mycal
  2. 给 mytask1.sh 一个可以执行权限
    chmod 744 /home/mytask2.sh
  3. crontab -e
  4. */1 * * * * /home/mytask2.sh
  5. 成功
4.4.3、每天凌晨 2:00 将 mysql 数据库 testdb ,备份到文件中 mydb.bak
  1. 先编写一个文件 /home/mytask3.sh
/usr/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak
  1. 给 mytask3.sh 一个可以执行权限
chmod 744 /home/mytask3.sh
  1. crontab -e
  2. 0 2 * * * /home/mytask3.sh
  3. 成功

5、crond 相关指令

  1. conrtab –r:终止任务调度。
  2. crontab –l:列出当前有那些任务调度
  3. service crond restart [重启任务调度]

你可能感兴趣的:(第 7 章、实操篇 crond 任务调度)