crontab centos7上的使用

简介

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 &

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

发表回复