crond 任务调度 (Linux相关指令:crontab)
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 [重启任务调度]