Linux設備空間存儲滿問題


問題

      linux創建文件夾文件。補全,啟動服務均報錯,具體報錯信息如下

[root@localhost log]# mkdir /log/mysql -p
mkdir: 無法創建目錄"/log": 設備上沒有空間
[root@localhost log]# rm -rf ma-bash: 無法為立即文檔創建臨時文件: 設備上沒有空間
-bash: 無法為立即文檔創建臨時文件: 設備上沒有空間

[root@localhost ~]# systemctl restart nginx
Job for nginx.service failed because a configured resource limit was exceeded. See "systemctl status nginx.service" and "journalctl -xe" for details.
[root@localhost ~]# systemctl status nginx.service
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: failed (Result: resources)

7月 30 10:42:48 localhost.localdomain systemd[1]: nginx.service failed to run 'start-pre' task: No space left on device
7月 30 10:42:48 localhost.localdomain systemd[1]: Failed to start The nginx HTTP and reverse proxy server.
7月 30 10:42:48 localhost.localdomain systemd[1]: Unit nginx.service entered failed state.
7月 30 10:42:48 localhost.localdomain systemd[1]: nginx.service failed.
7月 30 10:42:48 localhost.localdomain systemd[1]: Starting The nginx HTTP and reverse proxy server...

解決流程

1.1.1 查看磁盤空間以及inode的數量

[root@localhost lib]# df -h
文件系統        容量  已用  可用 已用% 掛載點
/dev/sda3        99G   16G   78G   17% /
devtmpfs        7.8G     0  7.8G    0% /dev
tmpfs           7.8G     0  7.8G    0% /dev/shm
tmpfs           7.8G  9.1M  7.8G    1% /run
tmpfs           7.8G     0  7.8G    0% /sys/fs/cgroup
/dev/sda2       988M  121M  800M   14% /boot
/dev/sda5       418G  200G  197G   51% /opt
tmpfs           1.6G     0  1.6G    0% /run/user/0
tmpfs           1.6G     0  1.6G    0% /run/user/1010


[root@localhost /]# df -i
文件系統          Inode 已用(I)  可用(I) 已用(I)% 掛載點
/dev/sda3       6569984 6569984        0     100% /
devtmpfs        2029003     501  2028502       1% /dev
tmpfs           2031454       1  2031453       1% /dev/shm
tmpfs           2031454     661  2030793       1% /run
tmpfs           2031454      16  2031438       1% /sys/fs/cgroup
/dev/sda2         66384     346    66038       1% /boot
/dev/sda5      27803648  747154 27056494       3% /opt
tmpfs           2031454       1  2031453       1% /run/user/0
tmpfs           2031454       1  2031453       1% /run/user/1010

由此可見磁盤空間正常但是inode已經爆滿

1.1.2什么是磁盤inode

一、inode是什么?

理解inode,要從文件儲存說起。
文件儲存在硬盤上,硬盤的最小存儲單位叫做"扇區"(Sector)。每個扇區儲存512字節(相當於0.5KB)。
操作系統讀取硬盤的時候,不會一個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取一個"塊"(block)。這種由多個扇區組成的"塊",是文件存取的最小單位。"塊"的大小,最常見的是4KB,即連續八個 sector組成一個 block。
文件數據都儲存在"塊"中,那么很顯然,我們還必須找到一個地方儲存文件的元信息,比如文件的創建者、文件的創建日期、文件的大小等等。這種儲存文件元信息的區域就叫做inode,中文譯名為"索引節點"。
文章原文地址:https://www.cnblogs.com/itech/archive/2012/05/15/2502284.html
1.1.3解決inode爆滿問題
      解決思路:查找inode數量大的文件夾,確定文件夾后跟開發溝通,確定無誤刪除重啟機器。
[root@localhost /]# for i in /*; do echo $i; find $i |wc -l|sort -nr; done 
.....
部分省略
.....
/run
733
/sbin
1
/srv
1
/sys
31369
/tmp
12
/tools
181
/uploads
42
/usr
248909
/var 6308823

    從根部開始查找由此可見/var文件夾竟然有600w+一定是有問題了繼續查找

[root@localhost lib]# for i in /var/*; do echo $i; find $i |wc -l|sort -nr; done

找到/var/lib文件夾繼續查找

[root@localhost lib]# for i in /var/lib/*; do echo $i; find $i |wc -l|sort -nr; done
```
部分省略
```
/var/lib/pear
37
/var/lib/php 6292685
[root@localhost lib]# cd php
[root@localhost php]# ls
session

由此查找到/var/lib/php/session目錄確定可以刪除就直接刪除

查一下容量

[root@localhost lib]# du -sh * | sort -n 

  690M php

刪除

cd /var/lib/php
rm -rf *

再次查看inode

[root@localhost php]# df -i
文件系統          Inode 已用(I)  可用(I) 已用(I)% 掛載點
/dev/sda3       6569984 4483299  2086685      69% /      #沒有刪除完查看一下已經變小
devtmpfs        2029003     501  2028502       1% /dev
tmpfs           2031454       1  2031453       1% /dev/shm
tmpfs           2031454     627  2030827       1% /run
tmpfs           2031454      16  2031438       1% /sys/fs/cgroup
/dev/sda2         66384     346    66038       1% /boot
/dev/sda5      27803648  747154 27056494       3% /opt
tmpfs           2031454       1  2031453       1% /run/user/0
tmpfs           2031454       1  2031453       1% /run/user/1010
[root@localhost php]# df -i
文件系統          Inode 已用(I)  可用(I) 已用(I)% 掛載點
/dev/sda3       6569984  281396  6288588       5% /
devtmpfs        2029003     501  2028502       1% /dev
tmpfs           2031454       1  2031453       1% /dev/shm
tmpfs           2031454     627  2030827       1% /run
tmpfs           2031454      16  2031438       1% /sys/fs/cgroup
/dev/sda2         66384     346    66038       1% /boot
/dev/sda5      27803648  747154 27056494       3% /opt
tmpfs           2031454       1  2031453       1% /run/user/0
tmpfs           2031454       1  2031453       1% /run/user/1010
您在 /var/spool/mail/root 中有郵件

到此結束問題解決


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM