zoukankan      html  css  js  c++  java
  • crontab命令使用

    cron:周期性计划任务、循环性计划任务,主要用于备份数据。 

       crontab       

           usage:crontab [-u user] [ -e | -l | -r ]     

           -u:<user>  define user      #指定用户     

           -e:edit user's crontab      #编辑计划任务     

           -l:list user's crontab      #查看计划任务     

          -r:delete user's crontab      #清空计划任务

    1、crontab -e      编辑周期性计划任务的内容
    时间
    min     hour   day  month  week    command
    分钟     小时      日      月         周      动作(任务命令)    
    0-59     0-23    1-31   1-12      0-7    命令或脚本(写绝对路径)
    30          2          1        *           *       rm -rf /tmp/*   //每月1号的2:30分删除/tmp目录下的所有文件
    5            *           *        6          3       rm -rf /tmp/*   //每年6月的每周三每小时的5分钟删除/tmp目录下的所有文件
    6            6          *        6           6       rm -rf /tmp/*    //每年6月的周六的6点6分钟删除/tmp目录下的所有文件

    2、时间数值的特殊表示方法

    *  表示该范围内的任意时间
    ,  表示间隔的多个不连续时间点
    -   表示一个连续的时间范围
    /   指定间隔的时间频率  

    3、时间的写法

    The time and date fields are:

          field          allowed values
          -----          --------------
          minute          0-59
          hour              0-23
       day of month    1-31
          month          1-12  (or  names,
          see below)
          day  of  week    0-7  (0 or 7 is
          Sun, or use names)

    4、案例
    案例一:每个星期三的下午10:00备份/etc/目录到/tmp目录叫2017-04-12_etc.tar.gz备份文件包含当天日期
    crontab -e
    * 22 * * 3 /usr/bin/tar cvzf /tmp/`/usr/bin/date +%F`_etc.tar.gz /etc 
    注:`命令`中的``为命令替换功能,系统会先执行``(反撇,反引号)中的命令.也可以将``写成$()
    案例二:只保留最近1个月的日志文件
    crontab -e
    1 * * * *  find /var/log -mtime +30 |xarge -i rm -rf {}
    案例三:每月1号的凌晨2点半清空临时盘
    crontab -e
    30  2  1  *  *  /usr/bin/rm -rf /tmp/* 
    案例四:每周每天的晚上8:10关闭电脑,除了星期六,星期五,星期日的17:10关闭电脑
    crontab -e
    10 20 * * 1-4  /usr/sbin/poweroff
    10 17 * * 5,7  /usr/sbin/poweroff
    案例五:jim用户每天在家目录创建一个以日期命名的目录20170412
    crontab -u jim -e
    1  0  *  *  *  /bin/mkdir  /home/jim/`date +%Y%m%d`


    查询周期性计划任务的内容
          crontab -l      #查看当前用户
          crontab -u jim -      #查看指定用户
    删除某用户的所有周期性计划任务(删除某个计划任务crontab -e 进入文本删除)
          crontab -r      #当前用户
          crontab -u jim -r      #指定用户


    系统定义的计划任务(默认)
          更新whatis数据库
          更新updatedb数据库
          日志定期轮滚(日志切割)
          清理/tmp /var/tmp
          收集系统的状态信息
     
    vim /etc/crontab  全局配置文件   

    SHELL=/bin/bash

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

    MAILTO=root

    HOME=/

    # For details see man 4 crontabs


    # Example of job definition:
    # .---------------- minute (0 - 59)
    # |  .------------- hour (0 - 23)
    # |  |  .---------- day of month (1 - 31)
    # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
    # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    # |  |  |  |  |
    # *  *  *  *  * user-name command to be executed  

    /etc/cron.*/  系统默认的设置文件


    以下目录内可以存在脚本  该脚本就会按照时间去执行
          cd /etc
          cron.hourly/      #每小时
          cron.weekly/      #每周
          cron.daily/      #每天
          cron.monthly/      #每月

    /var/spool/cron/用户名  用户定义的设置文件


    5、删除超过一个月不使用的文件
          cat /etc/cron.daily/tmpwatch
    6、crontab服务管理:
          查软件是否已安装:rpm  -q  crontabs
          查软件的文件列表:rpm  -ql  crontabs
          查软件的配置文件列表:rpm -qc crontabs
          服务状态:systemctl   status   crond       注:d是daemon守护进程
          重启at服务: systemctl   restart   crond   或  service   crond  restart
          关闭at服务: systemctl   stop   crond   或  service   crond  stop
          开机不启动at服务: systemctl   disable  crond 或 chkconfig   crond  off
          开机启动at服务:  systemctl   enable   crond  或 chkconfig   crond  on
    7、cron权限管理
    /etc/cron.allow      白名单:只允许在此名单内的用户使用crontab(此文件本身不存在)
    /etc/cron.deny      黑名单:在此名单内的用户不可以使用crontab
          注:两个文件都不存在,只有root用户可以使用crontab
                 两个文件都存在,allow优先执行

    随想 

    date -s “ 2017-12-30 00:00:00 ”

    指定任意时间

    date 

    查看时间

    ntpdate pool.ntp.org

     校对时间

  • 相关阅读:
    Discourse 如何不使用 Let’s Encrypt 而使用 CA 签名的密钥进行安装
    Discourse 重复安装过程中的密钥签发问题
    Discourse 升级后提示 https 混合内容
    CentOS 8 安装 docker 报错 containerd.io >= 1.2.2-3
    MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
    培养自己的5项能力
    高效率工作方式
    项目的架构演进过程
    如何预防后台被攻击,且看Tomcat的安全配置
    redis的缓存更新策略,缓存粒度控制
  • 原文地址:https://www.cnblogs.com/2567xl/p/11326234.html
Copyright © 2011-2022 走看看