首页 > 系统相关 >linux硬盘日志清理

linux硬盘日志清理

时间:2024-10-24 11:32:09浏览次数:1  
标签:log time echo current 硬盘 linux 日志 dir

日志文件清理

#!/bin/bash

# 定义需要检查的目录
directories=("/home/logs/archived" \
             "/data/logs")

# 获取当前硬盘分区的使用情况
df_output=$(df --output=pcent /data | tail -n 1 | tr -d ' %')

# 获取当前时间
current_time=$(date "+%Y-%m-%d %H:%M:%S")

# 判断硬盘使用是否超过70%
if [ "$df_output" -gt 70 ]; then
    echo "$current_time: Disk usage is above 70%. Cleaning up logs..."
    for dir in "${directories[@]}"; do
        # 检查目录是否存在
        if [ -d "$dir" ]; then
            # 进入目录
            pushd "$dir" > /dev/null || continue
            # 删除除了最新的5个文件之外的所有文件
            find . -type f -printf '%T+ %p\n' | sort -r | tail -n +6 | cut -d' ' -f2- | xargs rm -f
            echo "$dir is cleanup"
            # 返回上级目录
            popd > /dev/null
        else
            echo "$current_time: Directory$dir does not exist, skipping."
        fi
    done
    echo "$current_time: Log cleanup complete."
else
    echo "$current_time: Disk usage is below 70%. No cleanup needed."
fi

定时任务,每小时的第30分钟执行一次

30 * * * * /home/script/clean-prod-log.sh >> /home/script/logfile.log 2>&1

docker容器日志限制

修改/etc/docker/daemon.json ,添加如下内容:

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  }
}

重启docker服务

标签:log,time,echo,current,硬盘,linux,日志,dir
From: https://www.cnblogs.com/chq3272991/p/18499284

相关文章

  • 【Linux】线程ID、线程封装(详解)
    线程ID认识线程ID怎么查看一个线程的ID呢?                                                       线程库NPTL提供了pthread_self函数,可以获得线程......
  • linux shell 脚本语言教程(超详细!)
    Shell编程详细指南什么是Shell?Shell是用户与操作系统内核之间的接口,允许用户通过命令行输入来控制操作系统。它充当命令解释器,读取用户输入的命令并执行相应的操作。Shell提供了强大的脚本编程能力,可以自动化许多任务。常见的Shell有Bash(BourneAgainShell)、Zsh(ZShell)......
  • Windows、macOS和Linux系统安装Python的指南
    在不同的操作系统上安装Python通常涉及几个简单的步骤。以下是在Windows、macOS和Linux系统上安装Python的指南:Windows系统安装Python:下载Python安装程序:访问Python官方网站 python.org。选择适合Windows的Python版本(确保下载最新稳定版)。运行安装程序:双击下载的.exe文......
  • [linux]常用指令
    命令初体验体验Linux命令的使用执行命令时,如果提示信息出现乱码,是由于编码问题导致的,执行命令修改Linux的编码即可命令1:把配置写入指定文件命令2:重新加载指定文件Linux命令格式:command[-options][parameter]command:命令名[-options]:选项,可同来......
  • [linux]快速入门
    学习目标通过学习能够掌握以下的linux操作操作系统按照应用领域的不同,操作系统可以分为几类桌面操作系统服务器操作系统移动设备操作系统嵌入式操作系统不同领域的主流操作系统桌面操作系统Windows(用户数量最多)MacOS(操作体验好,办公人士首选)Linux(用户数量少)......
  • Linux系统性能优化实战指南
    引言Linux,作为开源操作系统的代表,凭借其高效、稳定、灵活的特性,在服务器、嵌入式设备、云计算等多个领域占据主导地位。然而,随着业务的发展和系统负载的增加,Linux系统的性能优化成为运维和开发人员必须面对的重要课题。本文将从硬件资源优化、内核参数调整、文件系统优化、......
  • linux提交之6e90b6-开源之耻!
    本周合并到Linux6.12-rc4内核中的一个补丁删除了一些内核维护者,使其不再出现在官方MAINTAINERS文件中,该文件可识别所有驱动程序和子系统维护者。其中包括宏碁Aspire1EC驱动程序、CirrusLogicCLPS711XARM架构、Baikal-T1PVT硬件监控器驱动程序、LibataPATA驱动程......
  • 宝塔linux面板安装(宝塔面板linux如何搭建网站)
    宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能。有30个人的专业团队研发及维护,经过200多个版本的迭代,功能全,少出错且足够安全,已获得全球百万用户认可安装。 Linux面板(Centos/OpenCloud/Alibaba稳定......
  • centos(linux): systemctl列出所有运行中/自启动的服务
    一,列出所有服务:systemctllist-units--type=service二,列出所有运行中的服务1,用--state指定状态systemctllist-units--type=service--state=running2,直接grepsystemctllist-units--type=service|greprunning三,列出所有自启动的服务1,列出所有自启动的单元......
  • linux硬盘清理
    日志文件清理#!/bin/bash#定义需要检查的目录directories=("/home/logs/archived"\"/home/logs/archived"\"/data/logs"\"/data/logs")#获取当前硬盘分区的使用情况df_output=$(df--output=pcent/dat......