Linux 实用指令(6)--crond任务调度

crond任务调度

1 原理示意图

crontab 进行 定时任务的设置


2 概述

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

任务调度分类:1. 系统工作:有些重要的工作必须周而复始的执行。如病毒扫描等

  1. 个别用户工作:个别用户可能希望执行某些程序,比如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

  1. */1 * * * * ls -l /etc >> /tmp/to.txt

  2. 当保存退出后就程序。

4)在每一分钟都会自动的调用 ls -l /etc >> /tmp/to.txt

4.3 参数细节说明

5个占位符的说明

项目 含义 范围
第一个‘*’ 一个小时当中的第几分钟 0-59
第二个‘*’ 一天当中的第几小时 0-23
第三个‘*’ 一个月当中的第几天 1-31
第四个‘*’ 一年当中的第几月 1-12
第五个‘*’ 一周当中的星期几 0-7

特殊符号的说明

特殊符号 含义
* 代表任何时间,比如一个"*"就代表一个小时中每分钟都执行一次的意思
代表不连续的时间。比如”0 8,12,16 * * * 命令“,就代表每天的8点0分,12点0分16点0分都执行一次命令
- 代表连续的时间范围。比如”0 5 * * 1-6 命令“,代表在周一到周五的凌晨5点0分执行命令
*/n 代表每个多久执行一次。比如”*/10 * * * * “代表每隔10分钟就执行一遍命令

特定时间执行任务案例

时间 定义
45 22 * * * 命令 在22点45分执行命令
0 17 * * 1 命令 在每周1的17点0分执行命令
0 5 1,15 * * 命令 每月1号和15号的凌晨5点执行命令
*/10 4 * * * 命令 每天凌晨4点,每隔10分钟执行一次命令
0 0 1,15 * 1 命令 每个月的1号和15号,每周1的0点0分都会执行命令。
注意:星期几和几号最好不要同时 出现,因为他们定义的都是天。
非常容易让管理员混乱。

5 任务调度的几个应用实例

5.1 案例一:

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

1)先编写一个文件 /home/mytask1.sh

2)给mytaskl.sh 一个可以执行的权限

chomd 744 /home/mytask1.sh

3)crontab -e

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

5)成功

5.2 案例二 :

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

1)先编写一个文件 /home/mytask2.sh

date >> /tmp/mycal

cal>> /tmp/mycal

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

chomd 744 /home/mytask2.sh

  1. crontab -e

  2. */1 * * * * /home/mytask2.sh

5)成功

5.3 案例三:

每天凌晨2:00 将mysql 数据库testdb ,备份到mydb.bak

1)先编写一个文件 /home/mytask3.sh

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

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

chomd 744 /home/mytask3.sh

3)crontab -e

4)0 2 * * * /home/mytask3.sh

5)成功

6 crond 相关指令

1)crontab -r :终止任务调度

2) crontab - l:列出当前有哪些任务调度

3)service crond restart 【重启任务调度】

原文地址:https://www.cnblogs.com/jianshuai520/p/11347468.html