docker日志清理---定时删除

27 篇文章 2 订阅

客户有一台linux虚拟机(基于centos7),业务部署在docker,docker运行的日志特别大,跟客户确认后日志无需备份,只需定时清理

#!/bin/sh  
time=$(date "+%Y-%m-%d %H:%M:%S")
echo "---------------------------------------------------------------------------"
echo "----- start clean docker containers logs on ${time} ----"  
  
logs=$(find /var/lib/docker/containers -name '*-json.log' )  
for log in $logs  
        do  
                du -h  $log
                cat /dev/null > $log  
        done  

echo "--- end clean docker containers logs on ${time}   -----"

#注释
## #!宣告本shell执行的shell解释器

#设定时间输出格式 为 年-月-日 小时:分钟:秒

#在脚本执行开始之前输出分隔符,宣告开始执行清理脚本并打印当前时间

# 查询日志文件名 find /目录 -name 模糊日志名(可通过前缀后缀匹配)

for 变量 in 所在文件或者取值范围
           do(执行)
                 du -h $log   查看并打印出log文件大小
                 cat /dev/null 直接将空设备文件重定向到log 等于清空此log文件
           done(脚本完成)

#####宣告执行完成docker日志清理并打印执行完成此刻时间

编辑定时任务 crontab -e 

40 17 */2 * * /usr/bin/sh /usr/local/autoclear_docker_log.sh >> /usr/local/autoclear_docker_log.log


-e 编辑edit

分钟(00-59) 小时(0-23) 天(1-31) 月份(1-12)天(0-6) 默认执行的shell 脚本 >>重定向 .log日志

每两天17:40分执行脚本autoclear_docker_log.sh日志并将执行记录写入到同目录下log日志中

---systemctl restart crond 重启定时任务服务使之生效

---systemctl enable crond 将crond 加入到开机启动项

---sytemctl is-enabled crond 查询crond是否开机自启动,disable or enable

或使用查看全部系统服务grep的方式查看是否enable
---systemctl list-unit-files | grep crond 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值