VPS上的磁盘空间管理 - 最佳实践

已发表: 2025-06-09
目录
  • 如何检查您是否在VPS上耗尽了磁盘空间
  • 注意备份营业额
  • 知道垃圾文件
  • 如何找到包含特定数据集的文件夹?
  • 如何防止磁盘空间过度?
  • 离磁盘配额太近的危险是什么?
  • 那么,如果我用完太空该怎么办?
  • 最后的想法

虚拟专用服务器(VPS)或专用服务器上的磁盘空间用完是一个常见但至关重要的问题,可能会破坏您的操作。将磁盘空间视为服务器的命脉。没有足够的呼吸空间,一切都会放慢或完全停止工作。无论您是托管网站,运行应用程序还是管理备份,如果您需要可靠性和性能,请在磁盘使用情况下保留磁盘使用情况。

在本指南中,我将介绍实用的动手策略,以诊断和修复磁盘空间问题,然后再变成灾难。我们将介绍从确定储存的内容到设置工具的所有内容,这些工具在事情开始紧张时提醒您。当您完成阅读时,您将有一个明确的计划,可以使您的服务器保持精益,卑鄙和准备采取行动。让我们开始吧!

如何检查您是否在VPS上耗尽了磁盘空间

如果您正在管理VP,则必须知道如何检查磁盘空间。好消息? Linux为您提供了简单而强大的工具来做到这一点。从DF -H命令开始 - 这向您显示了所有已安装的文件系统及其用法的概述,并以人为可读的格式(这就是-H代表)。您会看到列,例如总尺寸,二手空间,可用空间和安装点。请密切注意“使用%”列 - 如果它爬到100%的范围内,就该采取行动了。

需要更多细节吗?使用DU -SH /*通过目录分解磁盘使用情况。 -s为您提供了一个摘要,-H可以使其可读。这有助于查明哪些文件夹在挂空空间。例如,如果 /var /log正在吃千兆字节,则可能有失控的日志文件。

定期运行这些命令不仅智能 - 这是必不可少的。磁盘空间问题不会宣布自己;他们潜入你。养成定期检查或更好地检查自动监控的习惯,这样您就永远不会措手不及。每次主动节拍反应性。

让我们以现实世界的例子来深入研究实际方面。如果您使用的是基于Linux的VPS,则在检查磁盘空间时是您最好的朋友:DF -H和DU -SH。这是他们的工作方式以及如何解释其产出。

使用DF -H

在您的终端中运行此命令:

DF -H

您将获得这样的输出:

使用的文件系统尺寸可用用使用%安装在/dev/vda1 50g 40g 7.5g 85%/tmpfs 16g 0 16g 0%/dev/shm

这是什么意思:

  • /dev/vda1是您的主要磁盘,它已满85%。这越来越紧张 - 任何超过80%的人都是一个危险信号。
  • TMPFS是临时的内存存储,它是空的,因此不用担心。

如果您看到的分区为90%或更高,那么该进一步调查了。

使用DU -SH

现在,假设您已经确定了您的根目录( /​​)正在填充。要找出饮食空间,请使用:

DU -SH /*

输出可能看起来像这样:

2.5G /home12g /var500m /etc3.0g /usr

这告诉您 /var是最大的罪魁祸首。也许是日志文件或缓存数据堆积。进一步钻探:

du -sh /var /*

您可能会发现这样的东西:

10G /var/log1.5g /var /cache

啊!您的 /var /日志文件夹占用10GB。是时候清理旧日志了。

对于那些希望实施最佳实践以在可靠且高性能的基础架构上管理磁盘空间的最佳实践,请考虑VPS服务器荷兰或VPS欧洲,这是重视稳定性,性能和成本效益的开发人员和系统管理员的绝佳选择。

注意备份营业额

备份是救生员,但如果无法正确管理,它们也可以成为无声的磁盘空间杀手。随着时间的流逝,累积的备份(尤其是完整的系统快照)可以吃掉千兆字节的存储空间。例如,如果您每天在没有清理策略的情况下运行备份,则您的 /备份目录可能会呈现为不可持续的水平。

为了避免这种情况,请自动删除旧备份。 Logrotate之类的工具(是的,它不仅适用于日志!),也可以自定义脚本可以帮助您仅保留最新副本。例如,您可以配置保留策略,以保留最后7天的备份并删除任何旧的内容。许多备份工具(例如RSYNC或基于云的解决方案)也具有用于管理营业额的内置选项。

定期审核您的备份策略 - 不仅是为了可靠性,而且要确保它不会带来不必要的空间。毕竟,备份仅在此过程中不削弱您的服务器时才有用。

使用logrotate进行日志备份

日志可以快速堆积,特别是如果您的服务器处理大量流量。为了管理这一点,请使用Logrotate,该工具旨在旋转和压缩旧日志。这是/etc/logrotate.d/nginx的示例配置文件:

/var/log/nginx/*。

这是怎么回事:

  • 每天旋转日志。
  • 保持7天的日志(旋转7个)并删除较旧的日志。
  • 压缩旧日志以节省空间(压缩)。

运行logrotate /etc/logrotate.conf手动运行或通过cron自动运行。这样可以确保旧日志不会填满您的磁盘。

自动化备份清理与查找

如果您要管理自定义备份,则可以使用FIND命令删除比某个年龄段更年长的文件。例如,删除超过7天 /备份中的备份文件:

查找 /备份-Type f -mtime +7 -exec rm -f {} \;

此命令搜索了7天以上(-mtime +7)修改的文件(-Type F)并删除它们(RM -F)。

在备份工具中制定保留政策

许多备份工具都具有内置的保留政策。例如,如果您使用rsync进行增量备份,则可以在脚本中添加一个清理步骤:

#!/bin/bashrsync -av –delete/source/backup/backup/backup -type f -mtime +14 -exec rm -f {} \;

该脚本将数据同步到 /备份,并删除14天以上的文件。

知道垃圾文件

临时文件,缓存和剩余数据可以静静地堆积并在您的磁盘空间中吃掉。例如,诸如软件包管理器(debian/ubuntu的/var/carce/apt)之类的应用程序或Web服务器通常会留下并非总是自动清理的文件。如果您不小心,这些垃圾文件可能会成长为浪费空间的千兆字节。

让我们介绍如何识别和清理诸如临时文件,缓存和其他不必要数据之类的垃圾文件的实际示例。这些命令将帮助您在确保系统安全的同时恢复磁盘空间。

清理 /TMP与查找

/TMP目录是可能并不总是清理的临时文件的常见场所。使用查找命令找到和删除7天以上的文件:

查找 /tmp -type f -mtime +7 -exec rm -f {} \;

这就是这样做的:

  • /TMP:针对临时目录。
  • -Type F:仅查找文件(忽略目录)。
  • -mtime +7:找到超过7天的文件。
  • -exec rm -f {} \; :删除它找到的文件。

定期运行此操作以防止 /TMP成为存储猪。

使用tmpwatch进行临时文件

如果您喜欢专用工具,则TMPWatch自动清理过程。例如,删除在7天未访问的 /tmp中的文件:

TMPWATCH 7D /TMP

这比查找要简单,并确保仅删除真正未使用的文件。

清除软件包管理器缓存

安装更新后,诸如APT或YUM之类的软件包经理通常会留下缓存的文件。清洁它们:

  • 对于Debian/Ubuntu(APT):
sudo apt干净

这将从/var/cache/apt/archives中删除所有缓存的.deb文件。

  • 对于Centos/Rhel(YUM或DNF):
sudo yum清洁全部

或者:

sudo dnf清洁全部

查找大型文件

有时,垃圾文件不在 /tmp中 - 它们散布在其他地方。使用查找在系统上找到大型文件(例如,超过100MB):

查找 / -type f -size +100m -exec ls -lh {} \;

这可以帮助您确定可能安全删除的大文件,例如旧日志或未使用的媒体。

删除任何内容之前,请确认文件的目的。例如,除非您确定它们是不必要的,否则不要盲目地从 /var, /etc或 /usr中删除文件。在运行删除命令之前,请始终备份关键数据。

通过使用这些命令并保持警惕,您可以在不冒险稳定的情况下免费提供服务器中的服务器。

如何找到包含特定数据集的文件夹?

当您的VPS开始在磁盘空间上较低时,第一步是找出大部分数据寿命的位置。两种工具 - du -sh *和ncdu - 是您查明最重目录的首选解决方案。

使用DU -SH *

在要分析的目录中运行此命令:

du -sh *

这是一个示例输出:

2.5G日志/1.8G备份/500m缓存/300m上传/

这显示了当前目录中每个文件夹或文件的大小。在这种情况下,日志/文件夹是2.5GB时最大的。通过运行进一步钻入日志/

du -sh logs/*

现在您知道错误文件是主要罪魁祸首。

使用NCDU进行互动分析

如果您更喜欢使用更友好的方法,请安装NCDU(磁盘使用分析仪):

sudo apt安装ncdu#for debian/ubuntusudo yum yum安装ncdu#for centos/rhel

然后运行:

ncdu/path/to/directory

您会看到磁盘使用情况的交互式分解。使用箭头键导航和标识大文件夹或文件。

这些工具可帮助您快速找到最大的空间猪。例如,如果 /var /log正在吞噬空间,则可以清除旧日志。如果/home/user/uploads肿,请考虑归档或删除未使用的文件。通过系统地分析目录,您无需猜测即可恢复有价值的磁盘空间。请记住:始终验证您要删除的内容,以免意外地删除关键文件。

如何防止磁盘空间过度?

防止磁盘空间过度覆盖与主动管理有关。这是您可以通过实用策略和工具保持领先地位的方式。

通过日志旋转和CRON作业自动清理

如果您曾经遇到过副总裁磁盘空间神秘最大化的情况,则日志文件通常是罪魁祸首。这些文件跟踪您的服务器上发生的一切,这非常适合调试,但是当它们无法控制时并不是那么好。这就是为什么设置系统自动管理它们至关重要的原因。

日志旋转是归档旧日志,压缩它们以节省空间的过程,并最终删除您不再需要的空间。大多数基于Linux的系统都带有用于通用服务的工具,但是如果您的特定应用程序没有配置日志旋转,则值得设置。这样可以确保您的原木保持井井有条而不会吞噬所有磁盘空间。

配对日志旋转与计划的清理任务增加了另一层效率。通过自动化这些过程,您可以保持服务器的精益,并避免由完整磁盘引起的意外崩溃或性能问题。只需确保定期查看您的设置 - 自动化功能强大,但这不是“设置并忘记它”的解决方案。

设置用户配额

如果多个用户或应用程序共享您的副总裁,请执行磁盘配额,以防止一个用户摆脱所有空间。在Linux上,使用配额:

sudo apt安装配额#安装配额工具ssudo edquota -u用户名#用户设置配额

设置磁盘用法的软限制,以避免惊喜。

使用工具监视磁盘使用情况

监视Nagios或Zabbix等工具可以在磁盘空间变得至关重要之前提醒您。例如,在Zabbix中,创建用于磁盘用法的触发器:

触发器:{Template OS Linux:vfs.fs.size [/,pused] .last()}> 80

当磁盘使用率超过80%时,这会发送警报。

或者,使用DF -H:使用简单的监视脚本:

DF -H | awk'$ 5+0> 80 {打印$ 6“超过80%满”}'

将其作为Cron工作运行,以通过电子邮件或日志通知您。

限制文件上传和缓存大小

对于Web服务器,请限制上传或缓存目录的大小。例如,配置nginx或apache以限制上传大小:

client_max_body_size 10m;

或用脚本清除旧的缓存文件:

查找 /var /cache -type f -mtime +14 -exec rm -f {} \;

通过自动清理,设置配额并使用监视工具,您可以在磁盘发生之前防止磁盘超重。这些步骤可确保您的服务器保持精益,可靠,并准备好处理其途径。

离磁盘配额太近的危险是什么?

用完磁盘空间不仅是不便 - 这是灾难的秘诀。当您的VPS登录其磁盘配额时,关键系统功能开始崩溃。例如,如果没有剩余空间,依靠编写日志的应用程序(例如Web服务器或监视工具)将失败。这可能会使您对错误或安全漏洞视而不见。

数据库是另一个大风险。 MySQL,PostgreSQL和其他数据库系统需要自由空间来执行操作,例如创建临时文件或更新索引。没有它,查询可能会失败,或者更糟糕的是,整个数据库可能会崩溃,从而导致停机或数据损坏。更糟糕的是,如果您的根部分区完全填充,则系统本身可以冻结。诸如Cron甚至SSH之类的基本过程可能会停止工作,使您无法远程登录或解决问题。

为了避免这些问题,始终旨在保持至少10-15%的磁盘空间。此缓冲区可确保运行平稳,并在存储开始运行低时为您提供调查和解决问题的空间。请记住:完整的磁盘不仅是一个警告信号 - 这是一个滴答时间炸弹。

那么,如果我用完太空该怎么办?

当您的副总裁用完磁盘空间时,恐慌无济于事,但是明确的计划将会。这是一个逐步指南,用于回收空间并使您的服务器重回正轨。

清理临时文件

首先清除不再需要的临时文件。使用查找命令在 /TMP或其他临时目录中找到和删除旧文件:

查找 /tmp -type f -mtime +7 -exec rm -f {} \;

这将删除超过7天的文件。谨慎不要触摸关键系统文件。

旋转并删除旧日志

日志可以成倍增长,尤其是在繁忙的服务器上。使用logrotate或手动清理日志。例如:

sudo查找 /var /log -type f -name“*.log” -exec truncate -s 0 {} \;

这将日志文件截断为零大小而不会删除它们,从而确保服务不会中断。

如果您确定不需要旧日志,请删除它们:

sudo rm/var/log/*

这会删除压缩日志文件,这些文件通常会随着时间的推移而积累。

识别并删除大文件

使用DU -SH *或NCDU查找大文件。例如:

du -sh /home /*

如果您发现不再需要的大量文件或目录,请将其删除:

rm -rf/home/user/unused_backup.tar.gz

将数据迁移到外部存储

对于备份或媒体等非关键数据,请将文件卸载到外部存储。使用诸如Rsync之类的工具将数据移至外部驱动器或云存储:

rsync -avz/path/to/ligal/files/user@remote:/backup/backup/backup/backup/

然后删除本地副本以释放空间。

添加其他磁盘

当您的VPS开始耗尽空间时,添加额外的磁盘可能是救生员。这种方法使您可以将笨重的文件(例如备份,媒体或日志)卸载到辅助存储设备上。大多数托管提供商都可以轻松地通过其控制面板将其他磁盘附加到您的VPS上。添加后,您可以将大文件或整个目录移至新磁盘以释放主驱动器上的空间。

这种方法不仅有助于组织,还可以通过减少主磁盘上的混乱来提高性能。只需记住更新依赖旧文件路径的任何应用程序配置即可。添加磁盘是一种可扩展的解决方案,可为您提供时间并使服务器顺利运行。

最后的想法

在VPS上管理磁盘空间不仅是一项任务,而且是持续的责任。定期监视和主动清理可以使您免于昂贵的停机时间,绩效问题和安全风险。请记住,预防总是比解决问题失控后更容易。

在采取行动之前,不要等待您的服务器在100%使用情况下达到100%的使用情况。今天开始实施本文中概述的工具和策略 - 设置日志旋转,自动清理脚本,并使用监视工具密切关注磁盘使用情况。您的未来自我(和用户)将感谢您保持服务器顺利运行。现在可以控制磁盘空间 - 这是您可以为VPS进行的最明智的投资之一。