linux中設備上沒有空間

在linux中設備空間有兩個條件決定的:硬盤容量inodehtml


硬盤容量node

即硬盤可用容量linux


inode
bash

即索引節點編號(記錄文件的大小,傭有者,權限,區塊地方等信息能夠經過 stat 命令查看),每一個分區中都會有固定大小的inode容量,每一個inode節點也會佔用硬盤空間,通常是128字節或256字節,inode節點的總數,在格式化時就給定,通常是每1KB或每2KB就設置一個inode,要查看各分區的inode狀況能夠經過 df -i 查看
ide


硬盤與inode其中一項超額就會形成 設備上沒有空間 異常錯誤,當出現這類錯誤基本上能夠從這兩個方面去考慮,通常使用命令  df:spa

df --help

用法:df [選項]... [文件]...
顯示每一個文件所在的文件系統的信息,默認是顯示全部文件系統。

長選項必須使用的參數對於短選項時也是必需使用的。
  -a, --all             include dummy file systems
  -B, --block-size=SIZE  use SIZE-byte blocks
      --direct          show statistics for a file instead of mount point
      --total           produce a grand total
  -h, --human-readable  print sizes in human readable format (e.g., 1K 234M 2G)
  -H, --si              likewise, but use powers of 1000 not 1024
  -i, --inodes        顯示inode 信息而非塊使用量
  -k            即--block-size=1K
  -l, --local        只顯示本機的文件系統
      --no-sync        取得使用量數據前不進行同步動做(默認)
  -P, --portability    使用POSIX 兼容的輸出格式
      --sync        取得使用量數據前先進行同步動做
  -t, --type=類型    只顯示指定文件系統爲指定類型的信息
  -T, --print-type    顯示文件系統類型
  -x, --exclude-type=類型    只顯示文件系統不是指定類型信息
  -v            (忽略)
      --help        顯示此幫助信息並退出
      --version        顯示版本信息並退出

所顯示的數值是來自 --block-size、DF_BLOCK_SIZE、BLOCK_SIZE
及 BLOCKSIZE 環境變量中第一個可用的 SIZE 單位。
不然,默認單位是 1024 字節(或是 512,若設定 POSIXLY_CORRECT 的話)。

SIZE 能夠是一個可選的整數,後面跟着如下單位中的一個:
KB 1000,K 1024,MB 1000*1000,M 1024*1024,還有 G、T、P、E、Z、Y。

請向bug-coreutils@gnu.org 報告df 的錯誤
GNU coreutils 項目主頁:<http://www.gnu.org/software/coreutils/>
GNU 軟件通常性幫助:<http://www.gnu.org/gethelp/>
請向<http://translationproject.org/team/zh_CN.html> 報告df 的翻譯錯誤
要獲取完整文檔,請運行:info coreutils 'df invocation'

翻譯



判斷硬盤滿:(發現有佔用率達100% 就能夠判定該分區滿了)日誌

df -h

判斷inode滿:(發現有佔用率達100%就能夠判定該分區碎片文件超多)orm

df -ia


硬盤滿了通常刪除不要的臨時文件,清空日誌文件等不須要的文件便可(最好同時看下inode使用狀況)。htm


inode滿了通常就是垃圾小文件越多形成的,linux下有不少服務會生成日誌文件,若是處理不當,幾年下來刪除都是個頭痛事(上萬文件後 rm 使用就困難,甚至rm沒法所有刪除)。常見 crontab 定時服務就會產生郵件日誌,通常不須要郵件的可在 crontab -e 中最上面添加一行  MAILTO=""  關閉郵件發送。


當不知道有哪些目錄中存在大量碎片文件時,可經過命令:(查找出超過10M的目錄,再行處理)

find / -type d -size +10M

或者使用命令:(找出目錄下文件總數,可能須要執行屢次,直到找出具體的目錄)

cd /
find */ ! -type l | cut -d / -f 1 | uniq -c


當找到的目錄中存在上百萬文件時 rm 是沒法一次性刪除的,可使用rsync命令來刪除:

mkdir /tmp/del_path  #建立臨時空目錄
rsync --delete  -a -H -v  /tmp/del_path/  /val/logs/   #刪除/val/logs/下全部文件
相關文章
相關標籤/搜索