文档章节

Docker 宿主机定时清除容器的运行日志

yope
 yope
发布于 2018/07/07 17:53
字数 599
阅读 847
收藏 9

docker 宿主机定时清除容器的运行日志

一般docker容器都是最小化安装,不仅如此系统定时器相关的服务也不存在,自己去安装也很麻烦,故此直接使用宿主机的定时器即可。

一、在容器中编写清除日志脚本

这一部分不论你是把定时器加在宿主机或者是容器都必须要去做的 ;

网上随意一搜就可以看到如下的删除模板:

find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;

因为本人的日志目录层级比较深 所以改良了如下:

-- /opt/auto-del-log.sh 
#!/bin/sh
find /home/schedule_log/ -mtime -5 -type f -iname "*.log" -exec rm -rf {} \;

一定记得加可执行权限

chmod +777 /opt/auto-del-log.sh

后面经过验证 其实效果是一样的! 重点就是你要去验证你的脚本有无效! 你可以这样直接输入验证

find /home/schedule_log/  -type f -iname "*.log"
或者
find /home/schedule_log/  -name "*.log"

如果能查出你想删除的文件那么后面就可以开始套模板了。

-mtime:标准语句写法;

+30:查找30天前的文件,这里用数字代表天数;

"*.log":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件,这个可以灵活运用,举一反三;

-exec:固定写法;

rm -rf:强制删除文件,包括目录;

{} \; :固定写法,一对大括号+空格+\+; 

二、宿主机加入定时器

使用docker exec 命令校验之前写的脚本是否有效 如下:

docker exec -it tomcat8002 /opt/auto-del-log.sh

tomcat8002 : 容器名称或者ID

/opt/auto-del-log.sh :脚本在容器中的位置

如果此命令有效那么就可以编辑定时器了 本人采用的是centos7 具体可以参看网上介绍的挺全的一篇博客如下: centos7 linux定时任务详解

 crontab -e
 
02 4 * * *  docker exec -it tomcat8002 /opt/auto-del-log.sh

接下来就OK啦!

© 著作权归作者所有

yope
粉丝 15
博文 40
码字总数 34264
作品 0
厦门
程序员
私信 提问
Docker 空间使用分析与清理

摘要: 用户在使用 Docker 部署业务一段时间后,可能会发现宿主节点的磁盘容量持续增长,甚至将磁盘空间耗尽进而引发宿主机异常,进而对业务造成影响。 本文先对 Docker 的空间分析与清理进行...

姬子玉
2017/11/27
0
0
基于Docker持续交付平台建设的实践

摘要:基于Docker容器技术,运维技术团队开发了五阿哥网站的容器云平台。通过容器云平台95%的应用服务已经实现容器化部署。这些应用支持业务按需拓展,秒级伸缩,提供与用户友好的交互过程,...

Docker
2017/12/07
0
0
docker学习系列16 使用过程的一些经验总结

COPY 和 ADD 命令具有相同的特点:只复制目录中的内容而不包含目录自身。 比如 backend 目录的结构如下: 如果执行 容器内app底下会是model和controller目录,并不是backend目录。 如果要拷贝...

飞凡的陀螺
2018/10/07
0
0
Docker笔记4——容器命令(下)

启动守护式容器 使用某个镜像的后台模式启动一个容器 docker run -d [镜像名] 以我们现有的centos镜像为例,我们发现使用这种模式启动运行一个镜像返回了实例信息,说明成功了。但是我们没有...

HappyBKs
02/24
34
0
docker(5):数据的管理

Docker的volume卷 为了能持久话保存和共享容器的数据。   使用docker volume卷的两种方式   1:数据卷   2:数据卷容器 1:数据卷 数据卷:数据卷会绕过docker 的ufs 直接写在物理设备...

乐途
04/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

怎样在磁盘上查找MySQL表的大小?这里有答案

导读 我想知道 MySQL 表在磁盘上占用多少空间,但看起来很琐碎。不应该在 INFORMATION_SCHEMA.TABLES 中提供这些信息吗?没那么简单! 我想知道 MySQL 表在磁盘上占用多少空间,但看起来很琐碎...

问题终结者
12分钟前
3
0
jQuery load() 方法实现加载远程数据

jQuery load() 方法是简单但强大的 AJAX 方法。load() 方法从服务器加载数据,并把返回的数据放入被选元素中。 语法: $(selector).load(URL,data,callback);必需的 URL 参数规定您希望加载的...

前端老手
13分钟前
2
0
Spring Boot缓存实战 Redis 设置有效时间和自动刷新缓存-2

问题 上一篇Spring Boot Cache + redis 设置有效时间和自动刷新缓存,时间支持在配置文件中配置,说了一种时间方式,直接扩展注解的Value值,如: @Override@Cacheable(value = "people#${s...

xiaolyuh
21分钟前
7
0
怎样在磁盘上查找MySQL表的大小?这里有答案

我想知道 MySQL 表在磁盘上占用多少空间,但看起来很琐碎。不应该在 INFORMATION_SCHEMA.TABLES 中提供这些信息吗?没那么简单! 我想知道 MySQL 表在磁盘上占用多少空间,但看起来很琐碎。不应...

Linux就该这么学
46分钟前
5
0
Redis

一、Redis支持的几种数据类型:字符串、List、SET、HASH、ZSET 二、Redis的缓存技术主要是为了降低关系数据库的负载并减少网站成本 三、在Redis里面,被MULTI命令和EXEC命令包围的所有命令会...

BobwithB
48分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部