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進行的最明智的投資之一。