当前位置: 首页 > news >正文

日志清理脚本模板 - 一叶舟

日志清理脚本模板

cat /data_log_back_bak/move_old_logs.sh
#!/bin/bash# 日志源目录和备份目录LOG_DIR="/data/logs/back"
TMP_DIR="/tmp"
BAK_DIR="/data_log_back_bak"# 确保备份目录存在if [ ! -d "$BAK_DIR" ]; thenecho "Error: Backup directory $BAK_DIR does not exist."exit 1
fi# 查找3个月(约90天)前修改的文件并移动(原日志目录)find "$LOG_DIR" -type f -name "*.log" -mtime +90 -print0 | \xargs -0 -r mv -t "$BAK_DIR" 2>/dev/null && \echo "Moved files older than 3 months from $LOG_DIR to $BAK_DIR" || \echo "No files older than 3 months found in $LOG_DIR or move failed."# 查找3个月(约90天)前修改的文件并移动(新增/tmp目录)find "$TMP_DIR" -type f -mtime +90 -print0 | \xargs -0 -r mv -t "$BAK_DIR" 2>/dev/null && \echo "Moved files older than 3 months from $TMP_DIR to $BAK_DIR" || \echo "No files older than 3 months found in $TMP_DIR or move failed."# 可选:记录日志echo "$(date): Completed cleanup script." >> /var/log/move_old_logs.log

命令解释

这个命令是一个用于移动超过3个月的旧日志文件的shell脚本,我将逐步解释每个部分:find "$LOG_DIR":在指定的LOG_DIR目录中进行搜索-type f:只查找普通文件(不包括目录、链接等)-name "*.log":查找文件名以.log结尾的文件-mtime +90:查找90天前被修改的文件(+表示超过90天)-print0:以null字符(而不是换行符)分隔文件名,这样能正确处理文件名中包含空格或特殊字符的情况xargs -0:告诉xargs使用null字符作为输入分隔符(与find的-print0配合使用)-r:如果输入为空(即没有找到匹配的文件),则不执行命令mv -t "$BAK_DIR":使用mv命令的-t选项,将文件移动到指定的目标目录(-t表示指定目标目录,而不是将最后一个参数作为目标)"$BAK_DIR":目标目录,用于存放移动的文件2>/dev/null将标准错误输出重定向到/dev/null(即丢弃错误信息),避免显示可能的错误消息&& echo "Moved files older than 3 months to $BAK_DIR"如果前面的命令成功执行(即成功移动了文件),则显示"Moved files older than 3 months to $BAK_DIR"消息|| echo "No files older than 3 months found or move failed."如果前面的命令失败(即没有找到符合条件的文件或移动失败),则显示"No files older than 3 months found or move failed."消息这个命令的作用是:在LOG_DIR目录和TMP_DIR中查找90天前被修改的.log文件将这些文件移动到BAK_DIR目录中如果成功移动了文件,显示成功消息如果没有找到符合条件的文件或移动失败,显示相应的错误消息关键点说明:-mtime +90表示90天前修改的文件(90天=3个月)使用-print0和-0是为了正确处理文件名中包含空格的情况-t选项是mv命令的GNU扩展,允许指定目标目录,使命令更清晰
http://www.zskr.cn/news/10106.html

相关文章:

  • [原创]《C#高级GDI+实战:从零开发一个流程图》第10章:鼠标拖动完成连线、拖动时实时显示半透明虚线连线效果、自定义连接点样式
  • 马来西亚股票数据API对接文档
  • [OpenGL]相机环境
  • HT-SC4PS-33+:小功分大胃口,300 MHz-3 GHz全场通吃
  • 画面拼接后推流/64路画面同时拼接到一路流/指定程序窗口采集推流/另一种解决方案
  • 软件开发 --- 快速部署web
  • BIM建模利器 Tekla Structures 2025 全流程安装指南
  • 百度云服务ubtuntu安装docker
  • ubuntu安装mysql8并切换数据存储目录
  • Create lv of type vdo on RHEL8 9
  • Notepad++ 最新破解版下载及安装使用教程
  • 详细介绍:【Datawhale25年9月组队学习:llm-preview+Task1:大模型介绍与环境配置】
  • Git仓库ssh不同环境配置
  • 超大附件怎么发送的高效解决方案与技巧
  • dm sql 缓存区
  • 给国外传输大文件的最佳策略与解决方案
  • idea mvn package 报错java head space/ java.lang.OutOfMemoryError: Java heap space
  • 第四届云计算、大数据应用与软件工程国际学术会议(CBASE 2025)
  • Neo4j常用的语句记录
  • 常用的 HTTP 请求方法和区别
  • 安全向量模板类SiVector - 实践
  • 最佳三维文件格式,以及怎么在线浏览编辑FBX/OBJ/GLB/GLTF
  • ChatGPT 在招聘诈骗领域的应用
  • FR报表下拉框高度(JS添加css样式方式)调整
  • 领码优秀的方案|Spring Boot 异步请求深度剖析:从原理到 AI 驱动的吞吐量优化
  • 理解WPF Stylet中Command={s:Action 方法名}的设计与实现
  • 帆软报表下拉框高度(JS添加css样式方式)调整
  • CG-65 剖面细管式温度传感器 可实时监测不同土层温度动态
  • .NET STS 版本支持 24 个月
  • Vue2 父子组件传值(简化版示例) - 详解