Linux日志怎么切割_Linux日志借助logrotate实现日志切割后邮件通知的技巧
发布时间 - 2025-11-10 00:00:00 点击率:次答案:logrotate可自动切割Linux日志并支持邮件通知。通过配置daily、rotate等参数实现按天切割、保留7份备份,使用postrotate脚本在切割后触发mail命令发送通知,需配合ssmtp等工具配置SMTP邮件服务,最后用logrotate -d调试、-f强制执行验证效果。
Linux系统中日志文件会随着时间不断增长,过大的日志不仅占用磁盘空间,还会影响排查问题的效率。使用logrotate是实现日志切割的标准方式,它能自动按时间或大小分割日志,并支持压缩、归档等操作。更进一步,可以通过配置在日志切割后发送邮件通知,便于运维人员掌握日志处理状态。
logrotate基本工作原理
logrotate是Linux自带的日志管理工具,通常由cron每天自动调用执行。它通过读取配置文件来判断哪些日志需要切割,以及如何处理旧日志。
主要配置目录:
- /etc/logrotate.conf:主配置文件
- /etc/logrotate.d/:第三方服务或自定义日志的配置文件存放目录
每个服务(如nginx、tomcat)可在此目录下创建独立配置文件,避免修改主配置。
配置日志切割并启用邮件通知
要实现日志切割后发送邮件,关键是利用logrotate的postrotate脚本,在日志完成切割后触发邮件发送动作。
以Nginx为例,编辑配置文件:
sudo vim /etc/logrotate.d/nginx内容示例如下:
/var/log/nginx/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0
640 www-data adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
echo "Nginx日志已于$(date)完成切割" | mail -s "Nginx日志切割通知" admin@example.com
endscript
}
关键点说明:
- daily:每天切割一次
- rotate 7:保留7个历史日志文件
- compress:使用gzip压缩旧日志
- sharedscripts:确保postrotate脚本只执行一次,即使有多个日志文件
- postrotate ... endscript:切割后执行的命令块
- mail命令发送通知:需系统已配置可用的邮件发送服务(如ssmtp、sendmail或msmtp)
配置系统邮件发送功能
若系统未配置邮件发送,logrotate无法发出通知。推荐使用ssmtp或msmtp将邮件转发到外部SMTP服务器。
安装ssmtp:
sudo apt install ssmtp编辑配置:
sudo vim /etc/ssmtp/ssmtp.conf添加内容:
root=your_email@gmail.com mailhub=smtp.gmail.com:587 AuthUser=your_email@gmail.com AuthPass=your_app_password UseTLS=YES UseSTARTTLS=YES
保存后测试发信:
echo "测试邮件" | mail -s "test" admin@example.com确保能收到邮件后再启用logrotate通知。
验证与调试logrotate
使用以下命令手动运行并查看详细输出:
sudo logrotate -d /etc/logrotate.d/nginx-d表示debug模式,不会真正执行切割,仅模拟过程。
确认无误后可强制执行一次:
sudo logrotate -f /etc/logrotate.d/nginx检查日志目录是否有新生成的.1文件,并确认是否收到邮件。
基本上就这些。只要配置好logrotate和邮件通道,就能实现自动切割+通知,提升系统可观测性又不增加维护负担。
# linux
# word
# go
# nginx
# app
# 工具
# tomcat
# ai
# 配置文件
# echo
# mail
# vim
# 邮件发送
# 发送邮件
# 强制执行
# 就能
# 多个
# 在此
# 还会
# 推荐使用
# 可以通过
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
php打包exe后无法访问网络共享_共享权限设置方法【教程】
佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
如何在万网自助建站中设置域名及备案?
Laravel Session怎么存储_Laravel Session驱动配置详解
linux top下的 minerd 木马清除方法
网站图片在线制作软件,怎么在图片上做链接?
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】
Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践
Laravel怎么为数据库表字段添加索引以优化查询
Laravel中的withCount方法怎么高效统计关联模型数量
jQuery 常见小例汇总
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
QQ浏览器网页版登录入口 个人中心在线进入
Android自定义控件实现温度旋转按钮效果
如何挑选最适合建站的高性能VPS主机?
南京网站制作费用,南京远驱官方网站?
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
网易LOFTER官网链接 老福特网页版登录地址
Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例
Python结构化数据采集_字段抽取解析【教程】
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
EditPlus中的正则表达式实战(6)
香港服务器网站推广:SEO优化与外贸独立站搭建策略
Laravel如何优化应用性能?(缓存和优化命令)
如何在 React 中条件性地遍历数组并渲染元素
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
大学网站设计制作软件有哪些,如何将网站制作成自己app?
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
Claude怎样写结构化提示词_Claude结构化提示词写法【教程】
如何用虚拟主机快速搭建网站?详细步骤解析
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
,南京靠谱的征婚网站?
Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录
如何在IIS中新建站点并解决端口绑定冲突?
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
非常酷的网站设计制作软件,酷培ai教育官方网站?
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转
高端企业智能建站程序:SEO优化与响应式模板定制开发
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
北京网站制作公司哪家好一点,北京租房网站有哪些?
如何为不同团队 ID 动态生成多个独立按钮
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
Laravel怎么调用外部API_Laravel Http Client客户端使用
如何注册花生壳免费域名并搭建个人网站?
Laravel怎么在Controller之外的地方验证数据


640 www-data adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
echo "Nginx日志已于$(date)完成切割" | mail -s "Nginx日志切割通知" admin@example.com
endscript
}