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

news/2024/6/28 20:27:03

为什么80%的码农都做不了架构师?>>>   hot3.png

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 -e02 4 * * *  docker exec -it tomcat8002 /opt/auto-del-log.sh

接下来就OK啦!

转载于:https://my.oschina.net/nyp/blog/1841976


http://lihuaxi.xjx100.cn/news/237694.html

相关文章

fcm和firebase_我如何最终使Netlify Functions,Firebase和GraphQL一起工作

fcm和firebaseIn a previous post I confessed defeat in attempting to get an AWS Lambda GraphQL server to connect to a Firebase server. I didn’t give up right away, though, and a short time later found a different Node package to achieve what I couldn’t be…

Spark笔试

1.Spark 的四大组件下面哪个不是 (D ) A.Spark Streaming B Mlib C Graphx D Spark R 2.下面哪个端口不是 spark 自带服务的端口 (C ) A.8080 B.4040 C.8090 D.18080 3.spark 1.4 版本的最大变化 (B ) A spark sql Release 版本 B 引入 Spark R C DataFrame D支持动态资源…

Android逆向之调试smali代码基础

点击上方↑↑↑蓝字[协议分析与还原]关注我们 “ 介绍Android逆向中调试smali代码的方法。” 最近在重整Android逆向分析环境,一切都在从零开始,做下记录,给大家分享。 本文介绍Android逆向中smali代码的调试及环境的准备。 事先准备如下工具…

智能合约语言Solidity - 错误处理

链客,专为开发者而生,有问必答! 此文章来自https://www.liankexing.com,未经允许拒绝转载。 Solidity 是以太坊智能合约编程语言,阅读本文前,你应该对以太坊、智能合约有所了解,如果你还不了解…

Docker网络解决方案-Flannel部署记录

Docker跨主机容器间网络通信实现的工具有Pipework、Flannel、Weave、Open vSwitch(虚拟交换机)、Calico实现跨主机容器间的通信。其中Pipework、Weave、Flannel,三者的区别是: Weave的思路 12在每个宿主机上布置一个特殊的route的…

postgres语法_SQL Create Table解释了MySQL和Postgres的语法示例

postgres语法A table is a group of data stored in a database.表是存储在数据库中的一组数据。 To create a table in a database you use the CREATE TABLE statement. You give a name to the table and a list of columns with its datatypes.要在数据库中创建表&#…

json的简单的数据格式

json的简单数据格式 var arr{"obj1":["张三","12","女"],"obj2":["李四","12","女"],"obj3":["王五","12","女"],} var str""; $.each(a…

智能合约语言 Solidity 以太单位及时间单位

链客,专为开发者而生,有问必答! 此文章来自https://www.liankexing.com,未经允许拒绝转载。 Solidity是以太坊智能合约编程语言,当然你在阅读这篇文章之前,你应该对以太坊、智能合约有初步或者深入的了解&…