Linux定时任务,任务调度(三)

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

基本语法:crontab[选项]

快速入门:

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

1.1输入:crontab -e 进去

1.2编辑:*/1 * * * * ls -l /etc >> /tmp/t.txt     (意思是每一分钟 都会执行ls - l /etc   并把结果输入都 t.txt中)

1.3保存退出 :wq           

1.4每一分钟都会调用   ls -l /etc  把查询到的结果 输入到 t.txt

 

应用实例:

案例一:每隔一分钟,就把当前系统时间,追加到 /tmp/mydate.log 文件中(编辑文件输入 i ,才可以插入;保存退出输入  :wq)

1.先创建一个脚本  /home/mytask1.sh ,在mytask1.sh里面输入下面的内容  。输入完保存退出 

date >> /tmp/mydate.log

2.在操作台执行,给这个mytask1.sh 一个可以执行的权限,因为文件刚创建的时候,没有执行权限,只有读写权限

chmod 744  mytask1.sh

3. crontab -e             (解释:在操作页面输入crontab -e  进行编辑)

4.在上一步打开的页面中进行编辑 并 保存退出   (解释:下面的指令是  每隔一分钟,去执行 /home/mytask1.sh )

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

5.查看/tmp/mydate.log 下这个文件内容

案例2:每天凌晨2点,将mysql 数据库testdb,备份到文件mydb.bak中  (和案例操作步骤一样,只是.sh文件中的内容不一样)

1.先创建一个脚本  /home/mytask2.sh,在里面编写指令(每个人数据库安装地址用户名都不同,自己参考)。保存退出

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

 2.给 /home/mytask2.sh 一个可以执行的权限

chmod  744 mytask2.sh

3.crontab -e

4.打开crontab 中,编辑

0 2 * * * /home/mytask2.sh

5.结束

其它操作:

crond 相关指令:
       1) conrtab –r:终止任务调度。    
       2) crontab –l:列出当前有那些任务调度
       3) service crond restart   [重启任务调度]

参数细节说明:

  • 5个占位符说明

项目  

含义  

范围

第一个“*”

一小时当中的第几分钟

0-59

第二个“*”

一天当中的第几小时

0-23

第三个“*”

一个月当中的第几天

1-31

第四个“*”

一年当中的第几月

1-12

第五个“*”

一周当中的星期几

0-7(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点0分执行命令

40 4 * * 1-5 命令

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

*/10 4 * * * 命令

每天的凌晨4点,每隔10分钟执行一次命令

0 0 1,15 * 1 命令

每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。

 

 

 

 

 

 

 

 

 

 

注意:如果是简单的任务,可以不用写脚本,直接使用crontab加入任务即可

对于比较复杂的任务,需要写 脚本(shell编程)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章