crontab centos7上的使用

/ 0评 / 0

简介

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

安装

yum install crontabs

命令

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

<span class="hljs-comment">#列出crontab文件</span>
crontab -l

<span class="hljs-comment">#编辑crontab文件</span>
crontab -e

<span class="hljs-comment">#删除crontab文件</span>
crontab -r

<span class="hljs-comment">#恢复crontab文件</span>
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, 内容如下:

<span class="hljs-meta">#! /bin/bash
</span>
cat /dev/null > /var/<span class="hljs-built_in">log</span>/jenkins.log

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

<span class="hljs-number">30</span> <span class="hljs-number">1</span> * * * <span class="hljs-regexp">/data/</span>clean/clean_jenkins_log.sh ><span class="hljs-regexp">/dev/</span><span class="hljs-literal">null</span> &

重载配置文件systemctl reload crond.service

定期清理Docker镜像

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

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

定期重启服务

<span class="hljs-meta">#!/bin/sh
</span>
systemctl restart nexus.service
<span class="hljs-meta">#!/bin/sh
</span>
systemctl restart docker.service

其他样例

<span class="hljs-comment">#每晚的21:30 重启apache</span>
<span class="hljs-number">30</span> <span class="hljs-number">21</span> * * * <span class="hljs-regexp">/usr/local</span><span class="hljs-regexp">/etc/rc</span>.d/lighttpd restart

<span class="hljs-comment">#每月1、10、22日的4 : 45重启apache</span>
<span class="hljs-number">45</span> <span class="hljs-number">4</span> <span class="hljs-number">1</span>,<span class="hljs-number">10</span>,<span class="hljs-number">22</span> * * <span class="hljs-regexp">/usr/local</span><span class="hljs-regexp">/etc/rc</span>.d/lighttpd restart

<span class="hljs-comment">#每周六、周日的1 : 10重启apache</span>
<span class="hljs-number">10</span> <span class="hljs-number">1</span> * * <span class="hljs-number">6</span>,<span class="hljs-number">0</span> /usr/local/etc/rc.d/lighttpd restart

<span class="hljs-comment">#每天18 : 00至23 : 00之间每隔30分钟重启apache</span>
<span class="hljs-number">0</span>,<span class="hljs-number">30</span> <span class="hljs-number">18</span>-<span class="hljs-number">23</span> * * * <span class="hljs-regexp">/usr/local</span><span class="hljs-regexp">/etc/rc</span>.d/lighttpd restart

<span class="hljs-comment">#晚上11点到早上7点之间,每隔一小时重启apache</span>
* <span class="hljs-number">23</span>-<span class="hljs-number">7</span>/<span class="hljs-number">1</span> * * * <span class="hljs-regexp">/usr/local</span><span class="hljs-regexp">/etc/rc</span>.d/lighttpd restart

<span class="hljs-comment">#每一小时重启apache</span>
* *<span class="hljs-regexp">/1 * * * /usr</span><span class="hljs-regexp">/local/etc</span><span class="hljs-regexp">/rc.d/lighttpd</span> restart

<span class="hljs-comment">#每月的4号与每周一到周三的11点重启apache</span>
<span class="hljs-number">0</span> <span class="hljs-number">11</span> <span class="hljs-number">4</span> * mon-wed /usr/local/etc/rc.d/lighttpd restart

<span class="hljs-comment">#一月一号的4点重启apache</span>
<span class="hljs-number">0</span> <span class="hljs-number">4</span> <span class="hljs-number">1</span> jan * <span class="hljs-regexp">/usr/local</span><span class="hljs-regexp">/etc/rc</span>.d/lighttpd restart

<span class="hljs-comment">#每半小时同步一下时间</span>
*<span class="hljs-regexp">/30 * * * * /usr</span><span class="hljs-regexp">/sbin/ntpdate</span> <span class="hljs-number">210.72</span>.<span class="hljs-number">145.44</span>
<span class="hljs-number">30</span> <span class="hljs-number">1</span> * * * <span class="hljs-regexp">/data/</span>clean/clean_docker_images.sh ><span class="hljs-regexp">/dev/</span><span class="hljs-literal">null</span> &
<span class="hljs-number">30</span> <span class="hljs-number">2</span> * * * <span class="hljs-regexp">/data/</span>clean/clean_docker_images2.sh ><span class="hljs-regexp">/dev/</span><span class="hljs-literal">null</span> &
<span class="hljs-number">30</span> <span class="hljs-number">3</span> * * * <span class="hljs-regexp">/data/</span>clean/clean_docker_images3.sh ><span class="hljs-regexp">/dev/</span><span class="hljs-literal">null</span> &
<span class="hljs-number">30</span> <span class="hljs-number">4</span> * * * <span class="hljs-regexp">/data/</span>clean/clean_jenkins_log.sh ><span class="hljs-regexp">/dev/</span><span class="hljs-literal">null</span> &
<span class="hljs-number">10</span> <span class="hljs-number">5</span> * * * <span class="hljs-regexp">/data/</span>clean/restart_docker.sh ><span class="hljs-regexp">/dev/</span><span class="hljs-literal">null</span> &
<span class="hljs-number">30</span> <span class="hljs-number">5</span> * * * <span class="hljs-regexp">/data/</span>clean/restart_nexus.sh ><span class="hljs-regexp">/dev/</span><span class="hljs-literal">null</span> &

作者:adeng2016
链接:https://www.jianshu.com/p/b3c8493753ca
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

发表评论