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

    一.linux定时任务软件种类 1.at : 适合执行一次的任务。突发性的任务。需要启动 atd 服务才能执行任务。 2.crontab: 周期性的执行任务工作:启动crond 服务后可以执行任务。最常用到的任务。 3.anacron : 已天为周期后者在系统每次开机之后执行的任务工作

    一.linux定时任务软件种类

    1.at:适合执行一次的任务。突发性的任务。需要启动atd服务才能执行任务。

    2.crontab:周期性的执行任务工作:启动crond服务后可以执行任务。最常用到的任务。

    3.anacron:已天为周期后者在系统每次开机之后执行的任务工作。他会检测我们在停机之间应该被执行但是没有被执行的任务,将该任务执行一次。

    二、crontab定时任务

    1.语法

    [root@backup-Dextra]#crontab--help
    crontab:invalidoption---
    crontab:usageerror:unrecognizedoption
    usage:crontab[-uuser]file
    crontab[-uuser][-e|-l|-r]
    (defaultoperationisreplace,per1003.2)
    -e(edituser'scrontab)
    -l(listuser'scrontab)
    -r(deleteuser'scrontab)
    -i(promptbeforedeletinguser'scrontab)
    -s(selinuxcontext)

    /var/spool/cron/系统定时任务配置文件路径:查看、编辑定时任务都放在此目录下,已当前用户命名。

    用户的定时任务规则一般分为6个段(前5段时间、6段是命令或者是脚本),每段用空格分隔(系统分为7段)

    160506811.jpg

    特殊符号

    *:表示任意时间都

    -:表示一个时间段1-5代表12345

    ,:表示分隔时间段

    /n分隔n单位时间1/5代表每五分钟。

    注意:日和周不要同时使用,否则达不到效果。

    小结:书写定时任务要领

    1.加必要注释

    2.执行脚本前加/bin/sh可以有执行权限

    3.在制定用户下执行相关定时任务crontab–uwyg–l

    4.定时任务结尾加>/dev/null2>&1

    5.生产任务不要打印输出去掉-v

    6.定时任务或程序最好写到脚本里面执行

    技巧:命令程序要用绝对路径

    脚本中用到系统的环境变量要重新定义

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

    8.配置优秀定时任务过程

    1)命令行执行命令命令成功后复制到脚本;

    2)测试脚本,成功后复制脚本路径配置定时任务,不要手工输入;

    3)测试环境先测试,然后正式上线;

    三.系统定时任务

    [root@study1~]#cat/etc/crontab

    SHELL=/bin/bash

    PATH=/sbin:/bin:/usr/sbin:/usr/bin

    MAILTO=root

    HOME=/

    #Fordetailsseeman4crontabs

    #Exampleofjobdefinition:

    #.----------------minute(0-59)

    #|.-------------hour(0-23)

    #||.----------dayofmonth(1-31)

    #|||.-------month(1-12)ORjan,feb,mar,apr...

    #||||.----dayofweek(0-6)(Sunday=0or7)ORsun,mon,tue,wed,thu,fri,sat

    #|||||

    #*****user-namecommandtobeexecuted

    接目录加run-parts/etc/cron.hourly目录内的可执行文件都会被执行。

    利用系统配置文件/etc/crontab配置用户任务

    *****rootrun-parts/etc/cron.hourly

    四.生产场景如何调试定时任务

    1.把任务执行频率快一些:每分钟5分钟。。。。。。。。。。。

    强调:有些任务不允许频繁执行的,例如:定时往数据库插入数据,先在测试机上。

    2.用正确的执行任务时间,设置完成后,可以修改下系统当前时间:生产环境部不可以

    3.通过日志输出来调试定时任务追加到日志文件就可以了。有重定向了就不能定义到空

    4.注意一些任务命令带来的问题

    5.注意环境变量导致的定时任务故障(命令也要全路径)

    6.通过定时任务Crond日志调试任务

    五.crontab定时任务生产应用问题

    1.环境变量问题

    2.任务路径问题使用绝对路径

    3.脚本权限问题脚本前加/bin/sh

    4.时间变量问题“date+\%y\%m\%d”%写在脚本中不用转义

    5.>.dev/null2>&1问题

    6.定时任务加注释

    7.用脚本程序替代命令行

    8.避免不必要的程序输出:例如tar–zcvf中的V去掉

    9.切到目标目录的上一级目录打包

    10.定时任务中的脚本程序命令用全路径:如果环境变量重新定义了,就不需要了

  • 相关阅读:
    栅格系统
    JQuery
    week 4
    week 1
    js嵌套,BOM,DOM,内置对象,数组,自定义对象,正则表达式
    week 2
    case when的两种用法
    获取当前路径
    parse,tryparse区别
    parse ,tryparse 续
  • 原文地址:https://www.cnblogs.com/CHEUNGKAMING/p/4380985.html
Copyright © 2011-2022 走看看