Linux可以定时调度我们的脚本或者代码
任务调度:值得是系统在某个时间执行特定的命令或者程序
任务调度的分类:
1.系统工作:有些重要的工作必须周而复始执行。如病毒扫描
2.个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库备份
语法:
crontab [选项]
[选项] :
-e | 编辑contab定时任务 |
-l | 查询crontab任务 |
-r | 删除当前用户所有的crontab任务 |
占位符的说明:【注意: *号之间有空格】
项目 | 含义 | 范围 |
第一个* | 一小时中的第几分钟 | 0-59 |
第二个* | 一天中的第几小时 | 0-23 |
第三个* | 一月中的第几天 | 1-31 |
第四个* | 一年中的第几月 | 1-12 |
第五个* | 一周中的星期几 | 0-9(0和7都代表星期日) |
示意图:
案例:
设置任务调度文件 /etc/crontab
设置个人任务调度 执行 crontab -e 命令
接着输入任务到调度文件
如: */1 * * * * ls-l /etc/ > /tmp/to.txt
意思说每小时的每分钟执行 ls -l /etc/ > /tmp/to.txt
在里面输入:注意*之间的空格,i-->esc,:wq退出保存
当保存退出后每一分钟都会自动调用 ls -l /etc >> /tmp/to.txt
查看就是cd /tmp/即可ls
注意:上面的操作意味着我们往后的每一分钟都往这个 /tmp/to.txt文件追加内容,我们该如何停止呢?
把原来的语句删除即可
任务调度的实例:
案例一:每隔1分钟,就将当前的日期信息,追加到 /tmp/mydate文件中
(1)先编写一个文件 /home/mytask1.sh (和在windows中的.bat脚本文件一样,可以调用执行)
date >> /tmp/mydate
(2)给mytask1.sh一个可执行权限
(3)crontab -e
(4)*/1 * * * * /home/mytask1.sh
(5)成功
发现一分钟后又mydate文件出现
查看里面有什么
如何暂停脚本:
删除原文件即可
案例二:每隔1分钟,将当前日期和日历都追加到 /home/mycal 文件中
(1)先编写一个文件 /home/mytask2.sh
编写内容如下,追加数据到mycal中
date >> /tmp/mycal
cal >> /tmp/mycal
(2)给mytask1.sh一个可执行权限
chmod 744 /home/mytask2.sh
(3)crontab -e
(4)*/1 * * * * /home/mytask2.sh
(5)成功
一分钟后演示:
案例3:每天凌晨2点将mysql数据库testdb,备份到文件中
(1)先编写一个文件 /home/mytask3.sh
编写内容如下,重定向数据到mydb.bak中
/usr/local/mysql/bin/mysqkdump -u root -p root testdb > /tmp/mydb.bak
(2)给mytask3.sh一个可执行权限
chmod 744 /home/mytask3.sh
(3)crontab -e
(4)0 2 * * * /home/mytask2.sh
(5)成功
crond相关指令
1.crontab -r 终止任务调度
2.crontab -l:列出当前有哪些任务调度
3.service crond restart 重启任务调度