crond 任务调度 (Linux相关指令:crontab)

时间:2024-11-11 11:34:33

相关视频链接

crontab 进行 定时任务 的设置

    • 概述

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

任务调度的分类:

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

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

    • 示意图

定时任务——crontab(系统自带的服务,不需要安装第三方软件)

格式:分、时、日、月、周、任务

每项任务有六个字段,最后一个字段是命令行(需要做什么事情就在第六个字段进行编写)

前面五个字段分别代表在哪一分钟、哪一小时、几号、几月、星期几,对应取值范围不同,注意分、时、周从0开始,日和月从1开始
 

    • 基本语法

crontab[选项]

    • 常用选项

1.-e 编辑crontab定时任务(edit 通过这个指令去指定crond这个后台程序去调度 或完成某个任务)

2.-l 查询crontab任务(list 把当前拥有的任务显示出来)

3.-r 删除当前用户所有的crontab任务(remove删除crontab里定好的任务)

    • 快速入门

设置任务调度文件:/etc/crontab

设置个人任务调度:执行crontab –e 命令。

接着输入任务到调度文件,如:*/1 * * * * ls –l /etc/ > /tmp/to.txt(意思说每小时的每分钟执行ls –l /etc/ > /tmp/to.txt 命令,把etc目录下面的内容显示出来打到终端,然后把他重定向到tmp的to.txt文件,如果没有这个文件就会自动创建一个)

    • 参数细节说明

5个占位符的说明

特殊符号的说明(*表示任意时间)

特殊时间执行案例

  • 应用实例

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

*/1 * * * * date >> /tmp/mydate

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

步骤(1)vim/home/my.sh,写入内容 date>>/home/mycal 和 cal>> /home/mycal

先写脚本

(2)给 my.sh增加执行权限,chmod u+x/home/my.sh

给root用户增加执行权限

这里为手动执行,需动态执行

(3)crontab -e,增加 */1 * * * * /home/my.sh

不是手动执行,而是由crond后台程序定时每隔一分钟调用的

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

提示:备份指令为mysqldummp -u root -p 密码 数据库 >/home/db.bak

步骤(1)crontab -e

(2)0 2 * * * mysqldump -u root -p root testdb >/home/db.bak

(相当于在crontab中增加了一个任务:每天凌晨 2:00 将 mysql 数据库 testdb备份到/home/db.bak文件中)

(>冲掉 而非>>追加)

  • crond相关指令

conrtab –r:终止任务调度(删掉)

crontab –l:列出当前有那些任务调度

(查看当前用户设置的任务有哪些)

service crond restart [重启任务调度]