美文网首页
Linux定时任务的实现

Linux定时任务的实现

作者: 小镇青年Jack | 来源:发表于2019-12-24 09:43 被阅读0次

    提到Linux定时任务,务必会提到crontab命令,做一个简单的学习。

    crontab 文件的格式:

    {minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script} 

    minute: 区间为 0 – 59 

    hour: 区间为0 – 23 

    day-of-month: 区间为0 – 31 

    month: 区间为1 – 12. 1 是1月. 12是12月. 

    Day-of-week: 区间为0 – 7. 周日可以是0或7.

    Crontab简单示例:

    1、在 凌晨00:01运行

    1 0 * * * /home/linrui/XXXX.sh

    2、每个工作日23:59都进行备份作业。

    59 11 * * 1,2,3,4,5 /home/linrui/XXXX.sh   

    或者如下写法:

    59 11 * * 1-5 /home/linrui/XXXX.sh

    3、每分钟运行一次命令

    */1 * * * * /home/linrui/XXXX.sh

    4、每个月的1号 14:10 运行

    10 14 1 * * /home/linrui/XXXX.sh

    Crontab命令的选项:

    以下是 crontab 的有效选项:

    crontab –e : 修改 crontab 文件. 如果文件不存在会自动创建。 

    crontab –l : 显示 crontab 文件。 

    crontab -r : 删除 crontab 文件。

    crontab -ir : 删除 crontab 文件前提醒用户。

    在以上各个字段中,还可以使用以下特殊字符:

    星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

    逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

    中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

    正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。

    同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

    下面我做了一个很小的例子,通过这个小例子我们可以了解到定时任务的创建和删除

    1.编写shell脚本hello.sh:

    #!/bin/bash

    echo "Hello World !"  >> test

    #这个意思是向test文件内输入“Hello World!"这句话

    2.将脚本放到cron任务里:

    在终端写入crontab -e命令打开crontab文件

    在里面写:*/1 * * * * /home/lyl/hello.sh (这个路径是你存放脚本的路径)

    写完后保存退出

    3.输入命令:crontab -l 可以查看任务如图:

    4.你会看到系统自动新建了一个test文件并每隔一分钟往里输入一句“Hello World!"

    这样我们的定时任务就建好了

    接下来如果我们想要删除这个任务怎么办呢

    增加了crontab任务后,在/var/spool/cron目录下会有一个当前登录账号命名的文件。比如我的登录账号是lyl。则会存在一个lyl文件。该文件的内容就是刚添加的crontab任务。

    该处我们使用sed命令来处理/var/spool/cron/lyl 文件,将含hello.sh的行的内容删除掉。

    输入命令:sed -i '/hello.sh/d' /var/spool/cron/lyl

    可以查看任务 crontab -l 发现我们刚刚创建的任务没有了

    链接:https://www.jianshu.com/p/56846f39d410

    相关文章

      网友评论

          本文标题:Linux定时任务的实现

          本文链接:https://www.haomeiwen.com/subject/ylexoctx.html