最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux中磁盤空間排查實戰(zhàn)指南

 更新時間:2026年04月16日 08:51:14   作者:用戶545842986958  
生產環(huán)境磁盤使用率突破閾值,需要快速定位空間占用源并制定清理策略,本文為大家整理了Linux中磁盤空間排查方法,希望對大家有所幫助

問題場景

生產環(huán)境磁盤使用率突破閾值,需要快速定位空間占用源并制定清理策略。

診斷鏈路

1. 全局視圖:df定位分區(qū)

df -h  # 人類可讀格式
df -i  # 檢查inode耗盡情況

2. 目錄級排查:du統(tǒng)計占用

# 一級目錄占用排序
du -sh /* 2>/dev/null | sort -hr | head -10

# 深度遍歷(謹慎使用)
du -h --max-depth=2 /var | sort -hr | head -20

3. 文件級定位:find精準打擊

# 查找大文件(>100MB)
find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null

# 查找最近7天修改的大文件
find /var/log -type f -mtime -7 -size +50M

常見陷阱

陷阱1:已刪除文件未釋放空間

lsof | grep deleted
# 需要重啟占用進程或kill -HUP

陷阱2:隱藏的Docker占用

docker system df  # 查看Docker空間占用
docker system prune -a --volumes  # 清理懸空資源

陷阱3:inode耗盡但空間充足

df -i  # 檢查inode使用率
find / -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n

預防措施

  • 配置logrotate自動輪轉日志
  • 設置磁盤使用率告警(建議80%閾值)
  • 定期清理臨時文件和舊備份
  • 監(jiān)控Docker鏡像和容器數量

方法補充

磁盤空間耗盡(No space left on device)是Linux運維中最常見的問題之一。下文將帶你走通從系統(tǒng)級檢查到目錄級定位的完整排查鏈路,覆蓋df、du、lsof、find等核心工具的使用場景和技巧。

快速體檢:df - 查看整體磁盤使用情況

df(disk free)用于查看文件系統(tǒng)的總容量、已用空間、可用空間和掛載點。它是排查的第一步,能快速鎖定哪個分區(qū)已經飽和。

基礎用法

df -h   # 以人類可讀的格式顯示(GB/MB)

輸出示例:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        98G   78G   15G  84% /
/dev/sda2       500G  498G  2.0G 100% /home

  • Use% 100%:該分區(qū)已滿,需要進一步排查。
  • Avail 0:可用空間為零,系統(tǒng)可能無法寫入日志或創(chuàng)建臨時文件。

常用選項

命令說明
df -h人類可讀大?。ㄗ詣覭/M/G)
df -i查看inode使用情況(小文件過多也會導致“空間不足”)
df -T顯示文件系統(tǒng)類型(如xfs、ext4)
df --total匯總所有文件系統(tǒng)的總計

特殊情況:df 顯示已滿,但 du 統(tǒng)計很小

原因可能是:

  • 文件已被刪除,但仍有進程打開該文件(句柄未釋放)。
  • 掛載點下有“隱藏”的舊文件(如子目錄被另一設備掛載覆蓋)。

精確定位:du - 分析目錄和文件大小

du(disk usage)用于統(tǒng)計目錄或文件的真實磁盤占用。當df發(fā)現分區(qū)滿后,用du逐級深入,找出大文件或大目錄。

常用命令組合

# 查看當前目錄下所有子目錄的大小,按人類可讀排序
du -sh * | sort -hr

# 查看整個分區(qū)下最大的10個目錄(深度1)
sudo du -h /home --max-depth=1 | sort -hr | head -10

# 更全面的掃描:跳過某些目錄,排除proc、sys等偽文件系統(tǒng)
sudo du -h --exclude=/proc --exclude=/sys --max-depth=1 / | sort -hr

參數詳解

參數含義
-s匯總(只顯示總計)
-h人類可讀格式
-d N 或 --max-depth=N只顯示N層子目錄
--exclude=PATTERN排除匹配的目錄/文件
-a同時顯示文件(默認只顯示目錄)
-c最后顯示總和

常用定位大文件的快速命令

# 查找超過1GB的文件
find /home -type f -size +1G -exec ls -lh {} \; 2>/dev/null

# 查找超過500MB且最近7天修改過的文件
find /var/log -type f -size +500M -mtime -7 -exec ls -lh {} \;

進階診斷:inode 耗盡與文件句柄泄漏

有時候 df -h 顯示空間有余,但系統(tǒng)仍報“No space left on device”。這通常是 inode耗盡 或 文件句柄未釋放 導致的。

檢查inode使用率

df -i

輸出示例:

Filesystem      Inodes IUsed IFree IUse% Mounted on
/dev/sda1      5.2M   5.2M    0   100% /home

IUse% 100%:inode已滿,通常因為存在大量小文件(如緩存、郵件隊列)。

解決方案:

# 找到包含大量小文件的目錄
sudo find /home -type f -printf "%h\n" | sort | uniq -c | sort -rn | head -10
# 進入該目錄,清理舊文件(例如超過30天的日志)
find /home/cache -type f -mtime +30 -delete

文件被刪除但未釋放句柄(lsof)

當進程正在使用某個文件時,即使你執(zhí)行了rm,磁盤空間也不會立即釋放,直到進程關閉該文件或重啟。

診斷方法:

# 查看所有已刪除但仍被進程占用的文件
lsof | grep deleted
# 更精確:只看某個分區(qū)下的已刪除文件
lsof /home | grep deleted

輸出示例:

java    12345  root  14w   REG  8,1  10485760  123456 /home/log/app.log (deleted)

解決:重啟對應進程(systemctl restart java-app)或重定向其輸出(> /proc/12345/fd/14,但通常重啟更可靠)。

常見場景與解決策略

/var/log 日志文件過大

# 查看日志目錄占用
sudo du -sh /var/log/* | sort -hr

# 清理3個月前的系統(tǒng)日志(以journalctl為例)
sudo journalctl --vacuum-time=3d

# 安全截斷日志文件(保留最新1000行)
sudo tail -n 1000 /var/log/syslog > /tmp/syslog.tmp && sudo mv /tmp/syslog.tmp /var/log/syslog

Docker/容器存儲膨脹

# 查看Docker占用空間
docker system df

# 清理未使用的鏡像、容器、卷和構建緩存
docker system prune -a -f

# 進一步清理所有停止的容器和未使用的卷
docker volume prune -f

/tmp 目錄臨時文件堆積

# 清理超過24小時未訪問的臨時文件
sudo find /tmp -type f -atime +1 -delete
sudo find /var/tmp -type f -atime +1 -delete

數據庫文件(如MySQL、PostgreSQL)過大

  • 檢查數據庫的數據目錄(通常在/var/lib/mysql/var/lib/pgsql)。
  • 使用數據庫自身的清理命令:OPTIMIZE TABLE、VACUUM FULL。
  • 考慮歸檔舊數據或遷移到更大的存儲卷。

自動化監(jiān)控與預警

為了避免手工排查,可以設置定期監(jiān)控和告警。

使用cron + df 定時檢查并發(fā)送郵件

# 編輯root的crontab
sudo crontab -e

# 添加如下行(每小時檢查一次,使用率超過90%發(fā)郵件)
0 * * * * /usr/bin/df -h | awk 'NR>1 && $5+0 > 90 {print $0}' | mail -s "Disk Alert" admin@example.com

集成到 Prometheus + Grafana

安裝 node_exporter 采集磁盤指標,配置告警規(guī)則:disk_used_percent > 90%。

使用 ncdu 交互式分析(推薦)

# 安裝
sudo apt install ncdu   # Debian/Ubuntu
sudo yum install ncdu   # RHEL/CentOS

# 使用
ncdu /home

上下鍵導航,d 刪除文件,q 退出,界面友好,適合交互式清理。

到此這篇關于Linux中磁盤空間排查實戰(zhàn)指南的文章就介紹到這了,更多相關Linux磁盤空間排查內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Centos7遠程桌面 vnc/vnc-server的設置詳解

    Centos7遠程桌面 vnc/vnc-server的設置詳解

    這篇文章主要介紹了Centos7遠程桌面 vnc/vnc-server的設置詳解的相關資料,需要的朋友可以參考下
    2016-10-10
  • LuManager圖文安裝使用教程和創(chuàng)建MysqL快速建站基本教程

    LuManager圖文安裝使用教程和創(chuàng)建MysqL快速建站基本教程

    這篇文章主要介紹了LuManager圖文安裝使用教程和創(chuàng)建MysqL快速建站基本教程,需要的朋友可以參考下
    2016-04-04
  • Linux利用inotify和rsync服務實現數據實時同步的原理解析

    Linux利用inotify和rsync服務實現數據實時同步的原理解析

    inotify是系統(tǒng)內核的一個監(jiān)控服務,屬于操作系統(tǒng)內核的一個特有機制,用于監(jiān)控文件的信息變化,這篇文章主要介紹了Linux利用inotify和rsync服務實現數據實時同步,需要的朋友可以參考下
    2022-10-10
  • Linux下性能分析工具Perf安裝與用法

    Linux下性能分析工具Perf安裝與用法

    perf是Linux下的一款性能分析工具,能夠進行函數級與指令級的熱點查找,它由一個叫“Performance?counters“的內核子系統(tǒng)實現,可用于性能瓶頸的查找與熱點代碼的定位,本文給大家介紹了Linux?Perf安裝與使用,需要的朋友可以參考下
    2024-05-05
  • linux如何編譯安裝新內核支持NTFS文件系統(tǒng)(以redhat7.2x64為例)

    linux如何編譯安裝新內核支持NTFS文件系統(tǒng)(以redhat7.2x64為例)

    這篇文章主要介紹了linux如何編譯安裝新內核支持NTFS文件系統(tǒng)(以redhat7.2x64為例),具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2016-10-10
  • Centos搭建GTK+Codeblock完整版

    Centos搭建GTK+Codeblock完整版

    剛搭建完成一個程序用的軟件。把自己在搭建時步驟寫下來,省的在搭建的時候走彎路,找資料。
    2010-02-02
  • 在Unix/Linux上使用通用二進制文件安裝MySQL方式

    在Unix/Linux上使用通用二進制文件安裝MySQL方式

    本文介紹了如何在Unix/Linux平臺上從壓縮的tar文件二進制發(fā)行版安裝MySQL,首先,需要下載并解壓縮發(fā)行版,然后創(chuàng)建一個符號鏈接并將其添加到PATH變量中,接下來,設置發(fā)行版的所有權和訪問權限,初始化數據目錄,啟動MySQL服務器,并設置配置文件
    2025-02-02
  • Linux中設置SSH免密碼(密鑰)登錄的具體步驟

    Linux中設置SSH免密碼(密鑰)登錄的具體步驟

    SSH是一種加密的網絡協(xié)議,廣泛用于遠程管理服務器和安全傳輸文件,通常在使用SSH時需要輸入密碼進行驗證,但通過配置免密登錄,我們可以省去每次輸入密碼的麻煩,所以本文給大家介紹了Linux中設置SSH免密碼(密鑰)登錄的具體步驟,需要的朋友可以參考下
    2025-07-07
  • Ubuntu配置固定IP的流程步驟

    Ubuntu配置固定IP的流程步驟

    在裝服務器系統(tǒng)的時候,DHCP自動獲取ip時,路由可能會重新分配ip,為避免產生影響,可以關閉DHCP將主機設置為靜態(tài)ip,本文給大家介紹了Ubuntu配置固定IP的流程步驟,需要的朋友可以參考下
    2025-08-08
  • linux搭建NFS文件共享服務器的步驟詳解

    linux搭建NFS文件共享服務器的步驟詳解

    這篇文章主要介紹了linux搭建NFS文件共享服務器的方法,本文分步驟給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05

最新評論

拜城县| 灵台县| 平顺县| 黎平县| 汉沽区| 鄂尔多斯市| 武功县| 临朐县| 红桥区| 仁怀市| 昔阳县| 扎囊县| 杂多县| 永靖县| 建水县| 惠水县| 凤城市| 体育| 三门县| 那曲县| 宁国市| 彭山县| 卓尼县| 河东区| 新绛县| 灵宝市| 万源市| 青神县| 比如县| 潜江市| 三亚市| 义乌市| 呼伦贝尔市| 绩溪县| 寿阳县| 泰安市| 奈曼旗| 阿拉善盟| 大庆市| 吉首市| 海宁市|