![]()
微信号复制成功
微信号:ganshangwoniu
请返回微信添加朋友,粘贴微信号
清理阿里云服务器日志,核心是 管理 /var/log 目录(Linux)或 事件查看器(Windows)。为了避免重要数据丢失,操作前务必对重要文件做好备份。
我会把常用的清理方法整理成一张速查表,再针对一些常见应用和特殊情况做具体说明。你可以根据自己的服务器环境和习惯来选择。
📊 常用日志清理方法速查表
方法 适用场景 核心操作/命令 优点 缺点
手动删除 紧急释放磁盘空间 rm -rf /var/log/*.log 等 快速直接,立刻见效 操作不可逆,可能误删正在使用的日志文件
logrotate (日志轮转) 推荐用于生产环境,自动化管理日志文件的生命周期 配置 /etc/logrotate.d/ 下的规则 自动化、安全、可定制性强,能实现压缩、轮转和删除 初次配置需要一定学习成本
find + crontab (定时任务) 灵活定制清理策略,如“删除7天前的日志” crontab -e 添加定时任务,执行 find 命令 灵活高效,适合精确的时间或条件清理 配置错误可能导致误删
阿里云 OOS 运维编排 自动化、批量清理多台ECS实例的Windows日志 在OOS控制台创建定时任务模板 可视化操作,支持跨地域、多实例批量执行 需要理解OOS服务的基本概念
🐧 各场景清理要点与命令
手动清理:快速释放空间
在服务器上执行相应命令可以快速删除日志。以 Linux 系统为例:
查看磁盘占用:df -h
查看目录大小:du -sh /var/log
清空系统日志:echo “” > /var/log/syslog
删除归档日志:sudo rm /var/log/*.log.*
注意:使用 rm 命令删除正在被进程写入的日志文件时,磁盘空间可能不会立即释放。可改用 echo “” > /path/to/file.log 命令清空文件内容来释放空间。
logrotate:自动化日志管理
logrotate 是Linux系统自带的日志管理工具,能自动轮转、压缩和删除旧日志。核心配置文件在 /etc/logrotate.conf,各应用的个性化配置通常在 /etc/logrotate.d/ 目录下。
手动执行清理(调试):sudo /usr/sbin/logrotate -f /etc/logrotate.d/apache2
配置示例:
bash
/var/log/nginx/*.log {
daily # 每天轮转
rotate 7 # 保留7个归档日志
compress # 压缩旧日志
delaycompress # 延迟压缩,保留最近一个未压缩的日志
missingok # 日志文件不存在时忽略错误
notifempty # 日志为空时不轮转
create 0640 www-data adm
sharedscripts
postrotate
systemctl reload nginx > /dev/null 2>&1 || true
endscript
}
定时任务 (crontab):灵活定制清理计划
通过定时任务可以自定义清理策略。一个常见的用法是删除N天前的日志。
编辑用户定时任务:crontab -e
添加清理任务:
bash
# 每天凌晨2点删除 /var/log/ 目录下所有7天前修改、文件名包含 “log” 的文件
0 2 * * * find /var/log -type f -name “*log*” -mtime +7 -exec rm -f {} \;
-mtime +7:表示文件修改时间在7天前。
-exec rm -f {} \;:对找到的每个文件执行删除操作。
🔧 针对常见应用的特殊处理
Nginx 日志
Nginx的访问日志和错误日志通常位于 /var/log/nginx/ 目录。
手动清理:
bash
sudo rm -f /var/log/nginx/access.log
sudo rm -f /var/log/nginx/error.log
使用 logrotate:可创建 /etc/logrotate.d/nginx 配置文件,或使用 logrotate 工具手动触发清理。
注意事项:日志清理后,建议通过 nginx -s reopen 命令让Nginx重新打开日志文件,避免日志丢失。
Apache 日志
Apache日志默认位于 /var/log/apache2/ 或 /var/log/httpd/。
手动清理:
bash
sudo rm -f /var/log/apache2/access.log
sudo rm -f /var/log/apache2/error.log
使用 logrotate:系统通常已为Apache配置好 logrotate 规则,可通过 sudo logrotate -f /etc/logrotate.d/apache2 手动触发。
Tomcat 日志
问题现象:Tomcat运行中,catalina.out 等日志文件可能会因被进程占用,使用 rm 删除后磁盘空间无法立即释放。
解决方法:
清空文件而非删除:echo “” > /path/to/tomcat/logs/catalina.out
配置日志切割:可使用 logrotate 或 cronolog 等工具对 catalina.out 进行日志切割,防止单个文件过大。
重启服务:彻底释放空间的最简单办法是重启Tomcat服务。
Docker 容器日志
查看占用:docker system df
一键清理:docker system prune -a –volumes (会清理所有未使用的容器、网络、镜像和构建缓存,请谨慎使用)
限制单个容器日志大小:可在启动容器时通过 –log-opt max-size=10m –log-opt max-file=3 参数限制日志文件大小和数量。
☁️ 利用阿里云服务管理日志
除了登录服务器手动清理,你还可以通过阿里云自带的云服务来高效管理日志:
日志服务 (SLS) 管理:对于已接入阿里云日志服务的项目,建议在SLS控制台的 Logstore属性 中设置合理的数据保存时间(如3天、7天),过期日志将被系统自动删除,而非手动执行删除操作。此外,SLS还提供Logtail和LoongCollector等采集器,支持日志的实时采集、查询分析、投递消费等全生命周期管理。
DDoS高防日志:通过DDoS高防控制台的“全量日志分析”页面管理日志存储空间。当存储空间不足时,可选择升级容量,或手动清空(每个阿里云账号仅有2次手动清空机会,请谨慎操作)。
云防火墙日志:通过云防火墙控制台管理日志存储空间。开通服务后将获得4次清空日志的机会(服务续约后机会会重置),可选择手动清空或按需升级容量。
运维编排服务 (OOS):在ECS控制台使用OOS的“定时运维”功能,创建清理Windows服务器日志的自动化任务,实现可视化、可批量执行的日志清理方案。
云监控 (CloudMonitor):利用云监控的“日志告警”功能,设置如“日志文件大小超过1GB”或“日志保留超过7天”的告警条件。触发告警后,可自动执行预设的清理脚本,实现日志的智能管理。
⚠️ 清理日志的注意事项
备份重要日志:操作前务必备份可能用于安全审计或故障排查的日志文件。
先理解再删除:清理前先分析日志内容,明确哪些日志可以安全删除,切勿盲目执行。
设置合理的保留策略:根据业务合规要求和磁盘空间设定日志保留周期,如保留30天、60天等。
定期执行清理:将日志清理任务加入计划任务,避免日志无限制增长。
避免直接删除正在使用的日志:对于被进程占用的日志,使用 echo “” > file.log 清空而非 rm 删除。
谨慎使用 rm -rf:请确认目录正确,避免误删系统关键文件。
QQ在线沟通,点击马上咨询在线咨询
电话咨询:
177-2050-9380
微信咨询:
ganshangwoniu

