美文网首页Linux
crontab centos7上的使用

crontab centos7上的使用

作者: adeng2016 | 来源:发表于2017-05-31 11:29 被阅读706次

    简介

    Unix和类Unix的操作系统中的定时器。

    安装

    yum install crontabs
    

    命令

    crontab的使用就是编辑配置文件。
    配置文件位于/var/spool/cron/<username>,其中<username >是用户名。
    日志位于/var/log/cron,参考这里清理日志文件。

    #列出crontab文件
    crontab -l
    
    #编辑crontab文件
    crontab -e
    
    #删除crontab文件
    crontab -r
    
    #恢复crontab文件
    crontab <filename>
    

    配置文件基本格式 :

    *     *     *     *     *     cmd
    分   时    日    月    周   命令
    
    第1列表示分钟1~59 每分钟用*或者 */1表示
    第2列表示小时1~23(0表示0点)
    第3列表示日期1~31
    第4列表示月份1~12
    第5列标识号星期0~6(0表示星期天)
    第6列要运行的命令
    

    定期清理Jenkins日志

    新建.sh文件vi /data/clean/clean_jenkins_log.sh, 内容如下:

    #! /bin/bash
    
    cat /dev/null > /var/log/jenkins.log
    

    授权文件chmod 777 /data/clean/clean_jenkins_log.sh
    编辑crontab配置文件crontab -e, 加入一行配置, 每天凌晨1:30执行一次命令:

    30 1 * * * /data/clean/clean_jenkins_log.sh >/dev/null &
    

    重载配置文件systemctl reload crond.service

    定期清理Docker镜像

    过程同上,.sh文件内容修改为,按镜像Tag模糊匹配进行删除:

    #!/bin/bash
    
    docker rmi -f $(docker images | awk '/^daocloud.io/ { print $3 }')
    
    #!/bin/sh
    
    docker rmi -f $(docker images | awk '/^ccr.ccs.tencentyun.com/ { print $3 }')
    
    #!/bin/sh
    
    docker rmi -f $(docker images | grep "none" | awk '{print $3}')
    

    定期重启服务

    #!/bin/sh
    
    systemctl restart nexus.service
    
    #!/bin/sh
    
    systemctl restart docker.service
    

    其他样例

    #每晚的21:30 重启apache
    30 21 * * * /usr/local/etc/rc.d/lighttpd restart
    
    #每月1、10、22日的4 : 45重启apache
    45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
    
    #每周六、周日的1 : 10重启apache
    10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
    
    #每天18 : 00至23 : 00之间每隔30分钟重启apache
    0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
    
    #晚上11点到早上7点之间,每隔一小时重启apache
    * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
    
    #每一小时重启apache
    * */1 * * * /usr/local/etc/rc.d/lighttpd restart
    
    #每月的4号与每周一到周三的11点重启apache
    0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
    
    #一月一号的4点重启apache
    0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
    
    #每半小时同步一下时间
    */30 * * * * /usr/sbin/ntpdate 210.72.145.44
    
    30 1 * * * /data/clean/clean_docker_images.sh >/dev/null &
    30 2 * * * /data/clean/clean_docker_images2.sh >/dev/null &
    30 3 * * * /data/clean/clean_docker_images3.sh >/dev/null &
    30 4 * * * /data/clean/clean_jenkins_log.sh >/dev/null &
    10 5 * * * /data/clean/restart_docker.sh >/dev/null &
    30 5 * * * /data/clean/restart_nexus.sh >/dev/null &
    

    参考此章华表

    相关文章

      网友评论

        本文标题:crontab centos7上的使用

        本文链接:https://www.haomeiwen.com/subject/akidfxtx.html