1. 程式人生 > >Linux磁碟空間檢視及空間滿的處理

Linux磁碟空間檢視及空間滿的處理

如果要檢視磁碟還剩多少空間,當然是用df的命令了。
[[email protected] ~]# df -h
檔案系統 容量 已用 可用 已用% 掛載點
/dev/sda2 14G 11G 2.6G 82% /
/dev/sda1 99M 14M 81M 14% /boot
tmpfs 442M 275M 168M 63% /dev/shm
/dev/mapper/vg_test-lv_test
24M 1.3M 21M 6% /mnt/lvm
[

[email protected] ~]#
當然你可能並不關係磁碟還剩餘多少空間,你是需要知道當前的資料夾下的磁碟使用情況:
[[email protected] ~]# du –max-depth=1 -h
24K ./.gnome www.2cto.com
8.0K ./.eggcups
8.0K ./.config
136K ./.gnome2
16K ./.chewing
8.0K ./.gnome2_private
8.0K ./.Trash
224K ./.gstreamer-0.10
28K ./Desktop
48K ./.nautilus
48K ./.metacity
240K ./.scim
3.4M ./.mozilla
1012K ./.kde
12K ./.superkaramba
40K ./.local
8.0K ./.qt
272K ./.gconf
32K ./.mcop
16K ./.redhat
1.7M ./.thumbnails
8.0K ./.gconfd
7.5M .
[
[email protected]
~]#
看上面使用了du –max-depth=1 -h的命令來查詢磁碟的使用情況,因為後面沒有跟路徑,它就預設是當前的路徑。這個命令的-h引數是為了方便你讀懂每個檔案的大小,如果沒有這個引數顯示的檔案大小就沒有k,M,G等。執行命令後,前面n-1行的是該目錄下每個資料夾的大小。最後一行顯示的是該目錄總的大小。
然後你會說不在乎該目錄下每個檔案的大小,你只想知道其中某一個檔案(資料夾)的大小,那麼有沒有辦法呢?當然你應該記得,我一直強調的,方法總比問題多,這兒也不例外。
請看下面的例子:
[[email protected] ~]# du -sh
7.5M . www.2cto.com
[
[email protected]
~]#
聰明的你一定發現了這裡顯示的大小和上面最後一行的大小是一樣的。這就是說這裡顯示的大小是該目錄的總大小。
我知道你心裡在冷笑,不是方法比問題多嗎?這裡說的也只有一個答案。當然,我不會讓你失望的。另一個方法比較土,但是還是可以解決問題的。
[[email protected] ~]# du -h –max-depth=0
7.5M .
[[email protected] ~]#
我想告訴你的是man手冊裡面已經告訴了:–max-depth=0的功能和-s的功能是一樣的。
當然你也可以通過sed列印最後du -h –max-depth=1一行來解決問題,但我並不推薦。
這裡涉及到一個原則,儘量使用命令提供選項的原始功能。如果命令沒有提供該功能,才需要我們自己使用grep,sed,awk來選取我們需要的行。
當然du命令後面可以跟檔案路徑,來檢視指定路徑的大小的。
[[email protected] ~]# du -sh /opt/oracle
5.6G /opt/oracle
[[email protected] ~]#
如果磁碟過大,那麼檢視檔案大小就比較忙,請等一會,呵呵。

以下轉自:http://www.cnblogs.com/starRebel/p/5897450.html
今天在執行R指令碼的時候報了個錯:Fatal error: cannot create ‘R_TempDir’。排除了是自己寫的程式碼的問題,想著應該是某個沒見過的原因,google之,發現網上的說法是/tmp資料夾佔滿了磁碟空間。

執行 df 命令:

Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VG00-LV01
50G 47G 16M 100% /
發現確實有個分割槽被佔滿了。。。

第一次碰到這種情況,繼續google之,使用如下命令
du -sh /* | sort -nr
可以得到 / 目錄下所有檔案和目錄的大小的排序結果。

從中找出最大的,在我的機器中/var檔案佔用了47個G的大小,應該就是它了,使用上面的命令繼續追蹤:

du -sh /var/* | sort -nr
du -sh /var/log/* | sort -nr
du -sh /var/log/httpd/* | sort -nr
一層一層往下追蹤,最後發現是 httpd/目錄下的ssl_error_log佔據了超大磁碟空間,看了下檔案內容,估計是某次連結導致了大量錯誤資訊被一遍遍的迴圈寫入。

不多想,直接把這檔案刪除。

執行 df -i:

Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/VG00-LV01
3276800 226882 3049918 7% /
tmpfs 4069835 7 4069828 1% /dev/shm
/dev/md0 51200 39 51161 1% /boot
/dev/mapper/VG00-LV02
56705024 11756 56693268 1% /opt
沒有太大使用量,這是因為-i檢視inode節點情況,和檔案大小是不同概念。

再次執行df -h命令:

Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VG00-LV01
50G 47G 16M 100% /
仍然還是100%,明明已經刪除了啊。。。 不解,繼續google之。。

結論是“在Linux中,當我們使用rm在linux上刪除了大檔案,但是如果有程序打開了這個大檔案,卻沒有關閉這個檔案的控制代碼,那麼linux核心還是不會釋放這個檔案的磁碟空間,最後造成磁碟空間佔用100%,整個系統無法正常執行。這種情況下,通過df和du命令查詢的磁碟空間,兩者是無法匹配的,可能df顯示磁碟100%,而du查詢目錄的磁碟容量佔用卻很小。”

找出檔案使用者,kill掉:

lsof -n | grep deleted
找到使用ssl_error_log檔案的程序,kill掉,然後再次df -h,發現已經沒有100%的情況了。

處理完成~~

相關推薦

Linux磁碟空間檢視空間滿處理

如果要檢視磁碟還剩多少空間,當然是用df的命令了。 [[email protected] ~]# df -h 檔案系統 容量 已用 可用 已用% 掛載點 /dev/sda2 14G 11

Linux系統字符集檢視修改

一·檢視字符集 字符集在系統中體現形式是一個環境變數,以CentOS6.5為例,其檢視當前終端使用字符集的方式可以有以下幾種方式: 1、[[email protected] ~]# echo $LANG zh_CN.GB18030 2、[[email protected]

記一次生產環境物理機磁碟/目錄被日誌打滿處理方式(logrotate失效)

#山東梅長蘇 監控發現物理機/目錄使用率一直100%,messages和secure日誌特別大,應用已無法啟動。logrotate不生效排查了好長時間,原來的處 理方式是logrotate /etc/logrotate.conf加-f強制執行,但這種方式並沒有

linux檔案許可權檢視修改-chmod ------入門的一些常識

檢視linux檔案的許可權:ls -l 檔名稱ULUitugULUitug檢視linux資料夾的許可權:ls -ld 資料夾名稱(所在目錄)ULUitugULUitug修改檔案及資料夾許可權:ULUitugULUitugsudo chmod -(代表型別)×××(所有者)××

Linux系統如何檢視修改檔案讀寫許可權

檢視檔案許可權的語句:     在終端輸入:     ls -l xxx.xxx (xxx.xxx是檔名)     那麼就會出現相類似的資訊,主要都是這些:     -rw-rw-r--     一共有10位數     其中: 最前面那個 - 代表的是

Linux字符集的檢視修改

一·檢視字符集  字符集在系統中體現形式是一個環境變數,以CentOS6.5為例,其檢視當前終端使用字符集的方式可以有以下幾種方式: 第一種: 1 2 [[email protected]-www tmp]# echo $LANG z

Linux系統如何檢視修改檔案讀寫許可權(ZZ)

Linux系統如何檢視及修改檔案讀寫許可權 檢視檔案許可權的語句:     在終端輸入:     ls -l xxx.xxx (xxx.xxx是檔名)     那麼就會出現相類似的資訊,主要都是這些:     -rw-rw-r——     一共有10位數

linux 磁碟空間被佔滿但找不到目標檔案的問題處理 lsof命令

lsof簡介 在終端下輸入lsof即可顯示系統開啟的檔案,因為 lsof 需要訪問核心記憶體和各種檔案,所以必須以 root 使用者的身份執行它才能夠充分地發揮其功能。 直接輸入lsof部分輸出為:   每行顯示一個開啟的檔案,若不指定條件預設將顯示所有程序開啟的所有檔案。 lsof輸出各

mysql訪問日誌滿造成linux磁碟空間不足問題系列跟蹤解決

                         &nb

Linux命令之檢視磁碟空間

df:列出檔案系統的整體磁碟使用情況,disk free Filesystem:代表該檔案系統所有的分割槽 Used:已經使用的硬碟空間 Available:剩下的磁碟空間大小 Use%:磁碟使用率 Mounted on:磁碟掛載的目錄所在(掛載點) 1k-b

磁碟寫入資料提示:No spac left on device通過df -h檢視磁碟空間,發現沒滿,解決方法

初步判斷應該有兩種情況:一種是block滿了,另一種情況就是inode耗盡了。 首先df -i 檢視一下是否耗盡inode/block數量。 虛擬一塊磁碟並格式化: dd if=/dev/zero of=/opt/sdb1 bs=4096 count=100 mkfs -t ext4 /opt/sdb

磁碟寫入資料提示:No spac left on device通過df -h檢視磁碟空間,發現沒滿

初步判斷應該有兩種情況:一種是block滿了,另一種情況就是inode耗盡了。 首先df -i 檢視一下是否耗盡inode/block數量。 虛擬一塊磁碟並格式化: dd if=/dev/zero of=/opt/sdb1 bs=4096 count=100 mkfs -t ext4 /opt/sdb

linux 磁碟空間滿解決方法

執行命令 du -sh /* |sort -h 檢視根目錄下所有資料夾所佔用的磁碟空間。/* 是檢視根目錄開始的磁碟空間,  | sort -h 是按照大小排序  137M /root 150M

Linux磁碟空間滿問題定位

在Linux中,當我們使用rm在linux上刪除了大檔案,但是如果有程序打開了這個大檔案,卻沒有關閉這個檔案的控制代碼,那麼linux核心還是不會釋放這個檔案的磁碟空間,最後造成磁碟空間佔用100%,整個系統無法正常執行。這種情況下,通過df和du命令查詢的磁碟空間。 解決步驟: 1

linux磁碟空間滿了後怎麼去判定哪個地方佔了多大的空間並回收

df -h    #檢視磁碟空間佔用情況 du -s /* |sort -nr    #檢視那個目錄佔用空間大 du -h –max-depth=1    #檢視當前目錄下資料夾大小情況 lsof | grep

linux中詳細檢視所佔空間大小檔案個數

統計某資料夾下檔案的個數 ls -l |grep "^-"|wc -l 統計某資料夾下目錄的個數 ls -l |grep "^d"|wc -l 統計資料夾下檔案的個數,包括子資料夾裡的 ls -lR|grep "^-"|wc -l 如統計/home/han目錄(包含子目錄)下的所有js檔案則: ls -lR

磁碟空間迅速被寫滿,造成linux應用程序停止執行解決辦法

磁碟空間迅速被寫滿,造成linux應用程序停止執行;大量sendmail程序和Inodes寫滿的解決 解決過程:  清理了部分空間想先恢復ITM,但是發現磁碟空間迅速被寫滿,檢視程序有6000+的sendmail在跑,free -m看系統記憶體被耗盡,檢視並沒有sendmai

雲伺服器 ECS Linux 磁碟空間滿(含inode滿)問題排查方法

問題描述在雲伺服器ECS Linux系統內建立檔案時,出現類似如下空間不足提示:No space left on device …問題原因導致該問題的可能原因包括:磁碟分割槽空間使用率達到百分之百。磁碟分割槽inode使用率達到百分之百。殭屍檔案:已刪除檔案因控制代碼被佔用未

解決Linux磁碟空間滿的“軟”辦法

http://itlab.idcquan.com/linux/administer/802363.html 由於當初安裝系統時設計不合理,有些分割槽分的過小,以及網路通訊故障等造成日誌檔案迅速增長等其他原因都可能表現為磁碟空間滿,造成無法讀寫磁碟,應用程式無法執行等。下

du命令解決linux磁碟空間滿的問題(很不錯的哦)

首先你要確定是不是真正的是因為資料空間佔滿磁碟,經常是因為某個程式的日誌佔滿了空間。當發現磁碟滿了以後不要著急,使用以下命令從根目錄開始排除查詢哪個資料夾最大:du --max-depth=1 找到最大的目錄後,進入目錄再執行上面的命令,逐步就找到大空間的檔案夾了,如果是