linux全套 | crond任务调度 | 09

概述

cronttab进行定时任务的设置. cron是希腊语时间的意思,tab是表格的意思,组合起来就是时间表.

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

任务调度分类:

(1) 系统工作: 有些重要的工作必须周而复始地执行. 如病毒扫描等

(2) 个别用户工作: 个别用户可能希望执行某些程序,比如对mysql数据库的备份.

基本语法

crontab [选项]

-e: 编辑crontab定时任务

-l: 查询crontab任务

-r: 删除当前用户所有的crontab任务

快速入门

每分钟输出一个时间在/home/to.txt

crontab -e
* date >> /home/to.txt

参数说明

占位符说明

特殊符号说明

特定时间执行任务案例

(1) 在22点45分执行命令

45 22 * * * 命令

(2) 每周1的17点0分执行命令

0 17 * * 1 命令

(3) 每月1号和15号的凌晨5点0分执行命令

0 5 1,15 * * 命令

(4) 每周一到周五的凌晨4点40分执行命令

40 4 * * 1-5 命令

(5) 每天的凌晨4点,每隔10分钟执行依次命令

*/10 4 * * * 命令

(6) 每月1号和15号,每周1的0点0分都会执行命令

0 0 1,15 * 1 命令

任务调度的几个应用实例

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

  1. 向编写一个文件: /home/mytask1.sh, 内容为data >> /tmp/mydate

  2. /home/mytask1.sh一个可执行权限 ,chmod 755 /home/mytask1.sh

  3. crontab -e

  4. */1 * * * * /home/mytask1.sh

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

#!/bin/bash
# mytask02.sh
date >> /home/mycal
cal >> /home/mycal

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

#!/bin/bash
# mytask03.sh
0 2 * * * /usr/local/mysql/bin/mysqldump -uroot -proot testdb > /tmp/mydb.bak
原文地址:https://www.cnblogs.com/Rowry/p/12961153.html