运维:日志文件的压缩备份

日志文件的压缩备份是服务器运维中的关键任务,可有效防止磁盘空间被占满。主流方法包括使用系统工具 logrotate 或自定义 Shell 脚本结合定时任务。

使用 logrotate 工具(推荐)

logrotate 是 Linux 系统内置的日志管理工具,专为自动轮转、压缩和清理日志文件设计,配置灵活且无需手动编写脚本。

‌核心配置示例(以 Nginx 日志为例)‌:

/var/log/nginx/*.log {

daily # 每天轮转一次

missingok # 日志文件不存在时不报错

rotate 30 # 保留最近30个归档文件

compress # 使用 gzip 压缩旧日志

delaycompress # 延迟一天压缩,确保当日日志可读

notifempty # 日志为空时不轮转

create 0640 www-data adm # 创建新日志文件的权限和所有者

sharedscripts

postrotate

-f /var/run/nginx.pid && kill -USR1 `cat /var/run/nginx.pid`

endscript

}

‌关键参数说明‌:

rotate N:保留 N 个备份文件,超出的自动删除。

compress:启用 gzip 压缩,显著节省空间。

delaycompress:与 compress 配合使用,避免影响正在写入的日志。

postrotate:轮转后执行命令(如向 Nginx 发送 USR1 信号重载日志)。

‌配置文件路径‌:通常位于 /etc/logrotate.d/ 目录下,为不同服务创建独立配置文件。

‌手动测试‌:使用 sudo logrotate -d /etc/logrotate.d/nginx(调试模式)或 sudo logrotate -f /etc/logrotate.d/nginx(强制执行)验证配置‌1。

使用 Shell 脚本自定义备份

若需更灵活的逻辑(如备份到远程目录或特定命名规则),可编写 Shell 脚本并配合 cron 定时执行。

‌脚本功能示例‌:

每日凌晨 2 点压缩 /data/logs/myapp/ 目录中昨日的日志文件。

将压缩包(如 access.log-20260209.tar.gz)移动至 /data/backup/。

删除 /data/backup/ 中 7 天前的备份文件。

‌脚本优势‌:可自定义压缩格式(如 tar.gz)、备份路径和清理策略,适合非标准日志路径或特殊需求‌。

‌执行方式‌:将脚本保存为 backup_logs.sh,通过 crontab -e 添加定时任务:0 2 * * * /path/to/backup_logs.sh。

相关推荐
java_logo5 分钟前
Apache Doris Docker 部署指南:实时分析数据库实战
数据库·docker·apache·doris·apache doris·轩辕镜像·docker部署doris
码农学院22 分钟前
基于运维监控体系的网络品牌推广方案:从架构设计到技术实现
运维·网络
爱写代码的森7 小时前
鸿蒙三方库 | harmony-utils之ImageUtil图片保存到本地详解
服务器·华为·harmonyos·鸿蒙·huawei
广州灵眸科技有限公司7 小时前
xfce桌面触摸校准:基于灵眸科技EASY-EAl-Orin-Nano
数据库·windows·科技
大耳朵-小飞象9 小时前
电力安全运维的智能密码:BACS如何破解设备全生命周期管理难题,让电网安全“看得见、管得住”?
运维·安全·智慧城市·能耗系统·楼宇智控·未来生活
极客侃科技10 小时前
制造企业 MES/APS 选型:SAP PP/DS 集成、ERP-MES 边界划分与一体化架构要点
运维·架构·制造
憧憬成为web高手10 小时前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis
HLC++10 小时前
Linux的进程间通信
android·linux·服务器
段一凡-华北理工大学10 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
白露与泡影12 小时前
Arthas 实战指南:从方法耗时定位到 JVM 变量热修改
服务器·jvm·c#