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

    什么是定时任务

    设定某个日期或时间周期性执行指令。

    闹钟--叫你起床

    例子:定时任务--每天晚上12点把/etc目录备份一下

    定时任务分类

    crond(crontab) 定时任务软件 (软件包cronie)

    atd 运行一次

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

    #检查软件是否安装
    rpm -ivh        安装rpm软件
    rpm -qa            查看软件是否安装
    rpm -ql            查看软件详细信息
    rpm -qc         查看软件的主配置文件
    rpm -qf            查看命令属于的安装包
    rpm -e            卸载软件(尽量不用卸载,关闭)

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

    系统的定时任务

    /etc/cron.hourly/      系统定时任务每个小时运行这个目录里的内容
    /etc/cron.daily/       系统定时任务每天运行这个目录里的内容
    /etc/cron.weekly/      系统定时任务每周运行这个目录里的内容
    /etc/cron.monthly/     系统定时任务每月运行这个目录里的内容
    /etc/cron.deny         定时任务的黑名单
    /etc/crontab           系统定时任务的配置文件之一

    系统定时任务+logrotate命令完成对日志的日志切割/日志轮询

    -d, –debug :debug模式,测试配置文件是否有错误。
    -f, –force :强制转储文件。
    -m, –mail=command :压缩日志后,发送日志到指定邮箱。
    -s, –state=statefile :使用指定的状态文件。
    -v, –verbose :显示转储过程。
    每天轮询的日志配置文件
    [root@web01 scripts]# cat /etc/cron.daily/logrotate 
    #!/bin/sh
    /usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
    EXITVALUE=$?
    if [ $EXITVALUE != 0 ]; then
        /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
    fi
    exit 0

    用户定时任务

    crontab -l (list)列表 查看用户的定时任务 cron table
    crontab -e  (edit) 编辑用户的定时任务
    /var/spool/cron/root  (root是用户名 root用户的定时任务)
    一个命令(crontab)+一个目录(/var/spool/cron)
    #查看当前是否正在运行
    /etc/init.d/crond status
    systemctl   status   crond
    ps -ef|grep crond
    #查看crond是否开机自启动
    chkconfig |grep crond
    systemctl   status   crond
    #crontab命令使用
    -e  edit 编辑当前用户的定时任务  相当于vi /var/spool/cron/root
    -l  list显示当前用户的定时任务  相当于cat /var/spool/cron/root
    为何使用crontab命令  
    1.有语法检查功能 格式对不对  
    2.方便
    #定时任务相关的文件
    /var/spool/cron/      定时任务的配置文件所在的目录
    /var/log/cron          定时任务的日志文件  运行过程的一个记录
    /etc/cron.deny   哪些用户禁止使用定时任务 - 定时任务黑名单
    #定时任务9句箴言
    1.定时任务规则之前加注释
    2.使用脚本替代命令行定时任务
    3.运行脚本一定要用/bin/sh或sh
    4.定时任务中date命令%百分号
    5.定时任务中-命令或脚本结果(正确及错误)定向到黑洞(>/dev/null 2>&1)或追加到文件中 >>/tmp/maple.txt 2>&1
    6.避免不必要的程序及命令输出
    7.打包压缩使用相对路径(切到目标目录的上一级打包目标)
    8.定时任务脚本中的程序文件 ,尽量用绝对路径
    9.系统与命令位置有关的环境变量问题

     案例

    #定时更新时间
    * * * * * /usr/sbin/ntpdate ntp1.aliyun.com  &>/dev/null
    
    #定时打包目录
    00 00 * * * /usr/bin/tar zcf /data/etc.tar.gz  /etc 
     &>/dev/null
    
    #定时将当前时间写入文件
    * * * * * /usr/bin/date +\%F-\%H-\%M >>/root/time.txt 
     &>/dev/null
    
    #定时将etc目录打包,并将文件名带上时间点
    * * * * * /usr/bin/tar/ zcf /data/etc-$(date ++\%F-\%H-\%M).tar.gz   /etc  &>/dev/null
  • 相关阅读:
    三维坐标变换习题
    1 Introduction and Roadmap
    快讯:2019 OOW 文档已提供下载
    过了35岁,90%以上DBA都在迷茫:未来要何去何从?
    深度学习入门笔记(五):神经网络的编程基础
    《算法图解》学习笔记(十):K 最近邻算法(附代码)
    LNMP环境搭建之php安装
    LNMP环境搭建之php安装
    LNMP环境搭建之php安装
    (PSO-BP)结合粒子群的神经网络算法以及matlab实现
  • 原文地址:https://www.cnblogs.com/angelyan/p/10703156.html
Copyright © 2011-2022 走看看