zoukankan      html  css  js  c++  java
  • 定时任务

    一、定时任务简介

    crond定时任务的设置是以分钟来起步的定时任务

    如果定时任务不能来的,可以写脚本来执行

    while true

    do

           echo”i am oldboy teacher”

           sleep 1

    done

    有些人会在/etc/crontab下面写定时任务,这样是不规范的,所以有时候找不到定时任务可能是在这里的

    crond -l 显示定时任务  crond -e编辑定时任务

    二、定时任务的种类和细节

    crontab定时任务的管理命令,应用于周期性的

    at:适合仅执行一次就结束的调度任务命令,属于突发性的工作任务  chkconfig —list atd

    anacron这个命令要勇于非7*24小时的服务器,是以天威周期或者在系统每次开机后执行的任务工作

    1、

    Crontab -e ===vim /var/spool/cron/root

    Crontab -l ===cat /var/spool/cron/root

    2、

    Crontab -u 用户名 -l/e:在制定用户下才能用的定时任务

    3、

    查看系统任务的具体格式cat /etc/crontab  ---》分时日月周

    4、特殊字符

    *  表示“每”的意思,等价于0-59/1

    -  代表时间范围 比如 17-19   00 17-19 * * * cmd 这里是每天下午5点整 6点整 7点整执行cmd

    , 代表分隔时段的意思,30 17,18,19 * * * /bin/sh aa 每天晚上5点半,6点半,7点半执行这个脚本

    /n 每单位时间,n一般是数字  */10 * * * * cmd,这个是每10分钟执行一次cmd

    如:

    30 3-5,17-19 * * */bin/sh /scripts/pyrene.sh    代表每月的17到19号的凌晨3点半4点半5点半执行这个任务

    每分钟打印一次自己的名字拼音全拼到“/server/log/”自己的名字命令的文件

    * * * * * echo "pyrene" >>/server/log/pyrene.log >/dev/null 2>&1

    小结:

    1、  定时任务要加注释

    2、  结尾不要有>/dev/null 2>&1

    3、  /server/log目录必须要存在才能出结果

    4、  定时任务中的路径一定绝对路径

    5、  crond服务必须开启运行

    练习:

    每周六、日上午9:00和下午14:00学习(执行/server/scripts/oldboy.sh)
    要求:/serser/scripts/pyrene.sh脚本的功能式打印当天的日期:格式为2017-03-17
    解答:
    首先创建一个只放脚本的目录
    mkdir /server/scripts -p
    之后再创建目录中写入脚本
    放入定时任务
    00 09,14 * * 6,0 /bin/sh /server/scripts/pyrene.sh >/dev/null 2>&1

    三、定时任务要领

    要领1:为定时任务规则加必要的注释

    要领2:定时任务命令或程序最好写道脚本里面执行

    要领3:执行shell脚本任务前加/bin/sh

    要领4:定时任务命令或脚本结尾加>/dev/null 2>&1

    要领5:再指定用户下执行相关的定时任务

    要领6:生产任务程序不要随意打印输出信息

    要领7:定时任务执行的脚本要规范路径(/server/scripts)

    要领8:配置定时任务规范操作过程

      首先要在命令行操作成功然后复制成功的命令到脚本里面,减少出错的机会

      然后测试脚本测试成功后复制脚本到定时任务

    现在测试环境测试,然后正式环境规范部署

    练习:

    1、  每个2个小时讲系统文件/etc/service 文件打包备份到/tmp下(每次备份按时间生成不同的备份包)

    1、  每天晚上12点,打包站点目录/var/www/html备份到/data目录下(每次备份按时间生成不同的备份包)

    3、做一个定时任务每天晚上0点删除7天之前的上面的打包的

    1、从目标的上级打包(除非要完整路径的话再根开始打包)
    2、定时任务是按小时,打包里面的日期也要精确到小时
    tar -zcvf /tmp/serveice_$(date +%F-%H).tar.gz //etc/service
    3、确保命令行执行正确,然后写到脚本里面(复制)
    Cd /service/scripts
    Vim ser.sh
    tar -zcvf /tmp/serveice_$(date +%F-%H).tar.gz //etc/service
    
    4、定时任务命令或程序最好写道脚本里执行
    
    5、测试脚本正确性(定时任务怎么写,命令行就怎么测试)
    /bin/sh /server/scripts/ser.sh
    6、脚本测试好了,命令行的命令也要复制
    Crontab -e
    7、定时任务不要屏幕输出,可以打印到log里面
    
    之后做一个定时任务每天晚上0点删除7天之前的上面的打包的
    1、    首先写出删除命令find /tmp/ -type f -name “*.tar.gz” -mtime +7|xargs rm -f 
    2、    把这个写入脚本 cd /service/scripts 
    Vim de;/sh    → “find /tmp/ -type f -name “*.tar.gz” -mtime +7|xargs rm -f “
    3、    执行 /bin/sh -x /service/scripts/del.sh
    4、    放入定时任务crontab -e  并且写上注释
    ###删除上面7天之前的任务包
    00 00 * * * /bin/sh /server/scripts/del.sh >/dev/null 2>&1
    解决思路
  • 相关阅读:
    存储过程!
    声卡: 不同的声音,声卡进阶应用技巧集(zz)
    VMware虚拟机的移植性……
    终于挤进前五十了,呵呵
    水源九周年庆:)
    Windows Malicious Software Removal Tool
    听教授谈论文
    VMware虚拟机文件整理和压缩
    弄了一整天的VMWare
    倒霉!倒霉!
  • 原文地址:https://www.cnblogs.com/pyrene/p/6485882.html
Copyright © 2011-2022 走看看