在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?

要在Linux中实现只保留最近7天的Apache访问日志,可以使用logrotate工具,这是Linux系统中常用的日志管理工具,可以自动执行日志文件的轮转、压缩、删除等操作。以下是具体步骤:

1. 安装logrotate(如果尚未安装)

在大多数Linux发行版中,logrotate通常是预装的。如果你的系统中没有安装,可以通过包管理器安装,例如使用apt(对于Debian/Ubuntu)或yum/dnf(对于RHEL/CentOS/Fedora):

sudo apt-get install logrotate   # 对于Debian/Ubuntu系
sudo yum install logrotate      # 对于RHEL/CentOS系 (如果是旧版本)
sudo dnf install logrotate      # 对于Fedora系
2. 创建logrotate配置文件

你需要在/etc/logrotate.d/目录下创建一个新的配置文件,或者编辑现有的配置文件来包含对Apache访问日志的处理规则。这里我们假设创建一个名为apache-access-logs.conf的新文件:

sudo nano /etc/logrotate.d/apache-access-logs.conf

然后在文件中添加以下内容:

#/app/logs/*.log {
#   daily
#   rotate 7
#   compress
#   delaycompress
#   missingok
#   notifempty
#   create 640 root adm
#   postrotate
#       systemctl reload apache2.service > /dev/null 2>&1 || true
#   endscript
#}

这里解释一下各配置项的含义:

  • daily:指定日志每天轮转一次。
  • rotate 7:保留7份日志文件,包括当前日志和6个归档日志。
  • compress:使用gzip压缩归档的日志文件。
  • delaycompress:在下一次日志轮转时才压缩刚被轮转的文件,避免正在写入的日志被立即压缩。
  • missingok:如果日志文件不存在,不生成错误信息。
  • notifempty:如果日志文件为空,则不进行轮转。
  • create 640 root adm:在轮转后创建新的日志文件,并设置相应的权限和所有者。
  • postrotateendscript之间的命令会在日志轮转后执行,这里是重新加载Apache服务配置,确保新的日志文件被正确使用。
3. 测试和应用配置

修改完配置文件后,可以手动运行logrotate来测试配置是否正确,但通常不需要这样做,因为logrotate会被cron定时任务自动执行。

sudo logrotate -d /etc/logrotate.d/apache-access-logs.conf
BASH 复制 全屏

使用-d选项可以让logrotate执行模拟轮转,显示它将要做什么而不实际执行操作。

4. 确认cron作业

确保系统中有一个cron定时任务来定期运行logrotate。大多数系统已经默认配置好了每天运行logrotate,但你可以通过crontab -l(作为root用户)来检查。

5. 注意事项
  • 确保Apache服务配置中指定了正确的日志文件路径,并且日志文件名模式与logrotate配置匹配。
  • 考虑到安全性和资源管理,重新加载Apache服务的操作(如上述配置中的postrotate部分)应当谨慎处理,确保不影响服务稳定性。
  • 实际部署前应在测试环境中验证配置,以避免生产环境出现问题。
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
4天前
|
消息中间件 存储 监控
Kafka的logs目录下的文件都是什么日志?
Kafka的logs目录下的文件都是什么日志?
18 11
|
17天前
|
Prometheus 监控 Cloud Native
Web服务器的日志分析与监控
【8月更文第28天】Web服务器日志提供了关于服务器活动的重要信息,包括访问记录、错误报告以及性能数据。有效地分析这些日志可以帮助我们了解用户行为、诊断问题、优化网站性能,并确保服务的高可用性。本文将介绍如何使用日志分析和实时监控工具来监测Web服务器的状态和性能指标,并提供具体的代码示例。
97 0
|
20天前
|
API
【Azure 应用服务】当在Azure App Service的门户上 Log Stream 日志无输出,需要如何操作让其输出Application Logs呢?
【Azure 应用服务】当在Azure App Service的门户上 Log Stream 日志无输出,需要如何操作让其输出Application Logs呢?
|
20天前
|
Linux 应用服务中间件 网络安全
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
|
2月前
|
存储 弹性计算 前端开发
云服务器 ECS产品使用问题之如何从互联网访问ECS实例上的某个文件
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
23天前
|
XML 数据格式
【应用服务 App Service】如何移除App Service Response Header中包含的服务器敏感信息
【应用服务 App Service】如何移除App Service Response Header中包含的服务器敏感信息
|
23天前
|
域名解析 网络协议 数据中心
【应用服务 App Service】当遇见某些域名在Azure App Service中无法解析的错误,可以通过设置指定DNS解析服务器来解决
【应用服务 App Service】当遇见某些域名在Azure App Service中无法解析的错误,可以通过设置指定DNS解析服务器来解决
|
26天前
|
Kubernetes API 容器
在k8S中,使用kubectl logs无法查看日志是什么原因,如何让其能够查看?
在k8S中,使用kubectl logs无法查看日志是什么原因,如何让其能够查看?
|
4天前
|
Cloud Native Java 编译器
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
随着云计算技术的不断发展,云服务商们不断推出高性能、高可用的云服务器实例,以满足企业日益增长的计算需求。阿里云推出的倚天实例,凭借其基于ARM架构的倚天710处理器,提供了卓越的计算能力和能效比,特别适用于云原生、高性能计算等场景。然而,有的用户需要将传统基于x86平台的应用迁移到倚天实例上,本文将介绍如何将基于x86架构平台的应用迁移到阿里云倚天实例的服务器上,帮助开发者和企业用户顺利完成迁移工作,享受更高效、更经济的云服务。
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
|
2天前
|
编解码 前端开发 安全
通过阿里云的活动购买云服务器时如何选择实例、带宽、云盘
在我们选购阿里云服务器的过程中,不管是新用户还是老用户通常都是通过阿里云的活动去买了,一是价格更加实惠,二是活动中的云服务器配置比较丰富,足可以满足大部分用户的需求,但是面对琳琅满目的云服务器实例、带宽和云盘选项,如何选择更适合自己,成为许多用户比较关注的问题。本文将介绍如何在阿里云的活动中选择合适的云服务器实例、带宽和云盘,以供参考和选择。
通过阿里云的活动购买云服务器时如何选择实例、带宽、云盘