当前位置: 首页 > 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.hskmm.com/?act=detail&tid=14456

相关文章:

  • 11.备库出现gap处理方法
  • [原创]《C#高级GDI+实战:从零开发一个流程图》第10章:鼠标拖动完成连线、拖动时实时显示半透明虚线连线效果、自定义连接点样式
  • 修改Abp中Auto API Controllers中 默认生成的 Put、Delete请求
  • 电阻-温度数据拟合工具(最小二乘法)
  • delphi clientdataset 中文过滤问题
  • 基于 systemd 的 Go 应用自动化部署完整指南
  • 马来西亚股票数据API对接文档
  • [OpenGL]相机环境
  • 指令流水线的影响因素
  • Gitee本土化创新实践:中国企业研发效能提升的新引擎
  • 画面拼接后推流/64路画面同时拼接到一路流/指定程序窗口采集推流/另一种解决方案
  • Markdown的基本语法
  • 工业级CAD数据优化工具:PiXYZ Studio 2025 图文安装指南
  • BIM建模利器 Tekla Structures 2025 全流程安装指南
  • containerd离线安装
  • (转)使用 Embarcadero Delphi FMX 应用程序实现多点触控
  • 百度云服务ubtuntu安装docker
  • ubuntu安装mysql8并切换数据存储目录
  • WCF-双工通讯
  • 跨网文件安全交换系统:打破数据壁垒的高效之选!
  • 【F#学习】可区分联合 Discriminated Unions
  • Midscene.js - 开源的 AI 操作助手 - 广东靓仔
  • 详细介绍:【Datawhale25年9月组队学习:llm-preview+Task1:大模型介绍与环境配置】
  • Git仓库ssh不同环境配置
  • 超大附件怎么发送的高效解决方案与技巧
  • dm sql 缓存区
  • 给国外传输大文件的最佳策略与解决方案
  • idea mvn package 报错java head space/ java.lang.OutOfMemoryError: Java heap space
  • 大环境不好,这几个赚钱网站可以试试
  • Day20类与对象的小结