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

    第1章 定时任务----闹钟

    含义:每隔相同的时间  每天 每小时 做相同的事情(命令 脚本) 备份

    第2章 定时任务的分类

    2.1 atd

     运行一次

    2.2 anacron

    非7*24小时运行的服务器

    2.3 crond

    一般使用这个

    第3章 crond分类:用户定时任务与系统定时任务

    3.1 系统的定时任务

    [root@dzc ~]# ls -ld /etc/cron*

    drwxr-xr-x. 2 root root 4096 Aug 10 10:52 /etc/cron.d

    drwxr-xr-x. 2 root root 4096 Aug 10 10:53 /etc/cron.daily

    -rw-------. 1 root root    0 Aug 24  2016 /etc/cron.deny

    drwxr-xr-x. 2 root root 4096 Aug 10 10:51 /etc/cron.hourly

    drwxr-xr-x. 2 root root 4096 Aug 10 10:52 /etc/cron.monthly

    -rw-r--r--. 1 root root  457 Sep 27  2011 /etc/crontab

    drwxr-xr-x. 2 root root 4096 Sep 27  2011 /etc/cron.weekly

    3.2 用户定时任务

    [root@dzc ~]# crontab -l            查看定时任务

    [root@dzc ~]# crontab -e           编辑定时任务

    第4章 定时任务的使用

    4.1 查看定时任务是否运行?

    [root@dzc ~]# ps -ef |grep crond

    root       1565      1  0 Sep05 ?        00:00:00 crond

    root       3898   3757  0 22:13 pts/0    00:00:00 grep --color=auto crond

    [root@dzc ~]# /etc/init.d/crond status

    crond (pid  1565) is running...

    4.2 查看定时任务是否开机自启动

    [root@dzc ~]# chkconfig |grep crond

    crond                0:off      1:off      2:onn     4:on       5:on       6:off

    4.3 crontab 定时任务的使用

    -l查看定时任务   -e编辑定时任务   -u是用指定的用户

    4.4 定时任务相关的文件

     /var/spool/cron/  定时任务的配置文件所在的位置

    /var/log/cron 定时任务的日志文件

    查看日志 less /var/log/cron    tail /var/log/cron

    /etc/cron.deny  禁止使用定时任务的用户放入这个文件中

    4.5 定时任务的书写格式

     

    4.6 定时任务中常用符号

    *每   /n */10每隔10分钟

    4.7 使用

    #####每五分钟同步一下系统的时间

    #######第一个里程碑-用什么命令

    [root@oldboyedu-40 ~]# ntpdate ntp1.aliyun.com

     7 Sep 10:52:44 ntpdate[33569]: step time server 182.92.12.11 offset 2286907.971444 sec

    [root@oldboyedu-40 ~]#

    ######第二个里程碑-定时任务

    [root@oldboyedu-40 ~]# crontab -l

    #sync time by li  20170101

    */5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1

    ######第三个里程碑-检查结果

    date -s "10year"

    Tue Sep  7 10:56:03 CST 2027

    ###每天的上午7点到上午11点 每一个小时运行CMD命令
    * 07-11 * * * CMD   ###错误 
    00 07-11   * * * CMD    ###OK

    00 07-11/1  * * * CMD   ###OK
    定时任务中表示小时 每个小时 在分钟上面加上00   表示整点 

    4.8 定时任务的书写流程

    第一个里程碑  命令行测试-把你的名字显示到文件中

    第二个里程碑  把命令放入到脚本中

    第三个里程碑  测试下脚本是否可用

    第四个里程碑  写定时任务

    第五个里程碑  检查结果

    第5章 定时任务总结

    1. 定时任务规则之前加注释
    2. 使用脚本替代命令行定时任务

    超过两条命令,都是用脚本     命令的集合 命令大礼包

    1. 定时任务脚本中的程序命令及路径尽量使用绝对路径
    2. 运行脚本一定要用/bin/sh或sh

    统一脚本的位置 /server/scripts

    1. 定时任务中-命令或脚本结果(正确及错误)定向到黑洞(> /dev/null 2>&1)或追加到文件中 >>/tmp/oldboy.txt 2>&1

    【企业案例】如果定时任务规则结尾不加>/dev/null 2>&1或者追加到文件中>>/tmp/oldboy 2>&1,很容易导致硬盘inode空间被占满,从而系统服务不正常。 

    n  定时任务中 命令或脚本的结果没有定向到空或文件或文件中

    邮件的软件没有开启----大量小文件堆积在/var/spool/postfix/maildrop/ ----inode满了

    邮件软件开启了----定时任务会不断的给root用户发邮键

    1. 避免不必要的程序及命令输出
    2. 打包压缩使用相对路径 (切刀目录目标的上一级打包目标)

      cd/ 进入到被打包目录的上一级目录

    1. 定时任务中date命令%百分号不识别 需要在%前面加上
    2. 系统与命令位置有关的环境变量问

     

    每分钟显示当前系统的日期 年-月-日_小时,把这个时间追加到/tmp/date.log

    ###每分钟显示当前系统的日期 年-月-日_小时 ,把这个时间追加到 /tmp/date.log

    #######第一个里程碑-命令行运行命令

    [root@oldboyedu-40 ~]# date +%F_%H

    2017-09-08_09

    [root@oldboyedu-40 ~]# date +%F_%H >>/tmp/date.log

    [root@oldboyedu-40 ~]# cat /tmp/date.log

    2017-09-08_09

    #######第二个里程碑-把命令放入到脚本中

    [root@oldboyedu-40 ~]# mkdir -p /server/scripts

    [root@oldboyedu-40 ~]# cat /server/scripts/date.sh

    date +%F_%H >>/tmp/date.log

    [root@oldboyedu-40 ~]# sh /server/scripts/date.sh

    [root@oldboyedu-40 ~]# cat /tmp/date.log

    2017-09-08_09

    2017-09-08_09

    #######第三个里程碑-定时任务

    [root@oldboyedu-40 ~]# crontab -l|tail -2 

    #print time to a file by li 20000101

    * * * * *  sh /server/scripts/date.sh >/dev/null 2>&1

    [root@oldboyedu-40 ~]# tail -2 /var/log/cron

    Sep  8 09:51:01 oldboyedu-40 crond[8913]: (root) RELOAD (/var/spool/cron/root)

    Sep  8 09:51:01 oldboyedu-40 CROND[35678]: (root) CMD (sh /server/scripts/date.sh >/dev/null 2>&1)

     

     

     

  • 相关阅读:
    正则表达式
    vim
    linux 6 安装 zabbix.3服务
    内核链表学习记录
    rpc-protobuff-实现
    Qedis实现
    try-catch 异常捕获学习
    协程的学习和使用
    惊群的学习研究 这人的博客还有其他干货
    互斥锁与自旋锁的区别测试代码
  • 原文地址:https://www.cnblogs.com/dzc-/p/7929952.html
Copyright © 2011-2022 走看看