1. <span id='bqsw'></span><i id='bqsw'><div id='bqsw'><ins id='bqsw'></ins></div></i><ins id='bqsw'></ins>

    1. <i id='bqsw'></i>

      <code id='bqsw'><strong id='bqsw'></strong></code>
    2. <tr id='bqsw'><strong id='bqsw'></strong><small id='bqsw'></small><button id='bqsw'></button><li id='bqsw'><noscript id='bqsw'><big id='bqsw'></big><dt id='bqsw'></dt></noscript></li></tr><ol id='bqsw'><table id='bqsw'><blockquote id='bqsw'><tbody id='bqsw'></tbody></blockquote></table></ol><u id='bqsw'></u><kbd id='bqsw'><kbd id='bqsw'></kbd></kbd>
    3. <acronym id='bqsw'><em id='bqsw'></em><td id='bqsw'><div id='bqsw'></div></td></acronym><address id='bqsw'><big id='bqsw'><big id='bqsw'></big><legend id='bqsw'></legend></big></address>
      <fieldset id='bqsw'></fieldset>
          <dl id='bqsw'></dl>

          详解Linux系统中inode索引节点已满问题的解决方法

          • 时间:
          • 浏览:22
          • 来源:124软件资讯网

              今天login server的一个网站  ,发现login后没有天生session  。凭据以往履历 ,一样平常是空间已满导致session文件天生失败 。

              代码如下:

              df -h

              代码如下:

              Filesystem Size Used Avail Use% Mounted on

              /dev/mapper/dev01-root 75G 58G 14G 82% /

              udev 2.0G 4.0K 2.0G 1% /dev

              tmpfs 396M 292K 396M 1% /run

              none 5.0M 0 5.0M 0% /run/lock

              none 2.0G 4.0K 2.0G 1% /run/shm

              /dev/sda1 228M 149M 68M 69% /boot

              空间剩余14G  ,可以清除空间已满的情形  。导致文件天生失败另有另一个缘故原由 ,就是文件索引节点inode已满  。

              代码如下:

              df -i

              代码如下:

              Filesystem Inodes IUsed IFree IUse% Mounted on

              /dev/mapper/dev01-root 4964352 4964352 0 100% /

              udev 503779 440 503339 1% /dev

              tmpfs 506183 353 505830 1% /run

              none 506183 5 506178 1% /run/lock

              none 506183 2 506181 1% /run/shm

              /dev/sda1 124496 255 124241 1% /boot

              inodes 占用100%  ,果真是这个问题 。

              解决要领:删除无用的暂时文件  ,释放inode  。

              查找发现 /tmp 目录下有许多sess_xxxxx的 session暂时文件  。

              代码如下:

              ls -lt /tmp | wc -l

              4011517

              进入/tmp目录  ,执行find -exec下令

              代码如下:

              sudo find /tmp -type f -exec rm {} \;

              若是使用rm *  ,有可能由于文件数目太多而泛起Argument list too long错误 。除了/tmp的暂时文件外 ,0字节的文件也会占用inode  ,应该也释放  。

              遍历寻找0字节的文件  ,并删除 。

              代码如下:

              sudo find /home -type f -size 0 -exec rm {} \;

              删除后 ,inode 的使用量淘汰为19% ,可以正常使用了  。

              代码如下:

              df -i

              代码如下:

              Filesystem Inodes IUsed IFree IUse% Mounted on

              /dev/mapper/dev01-root 4964352 940835 4023517 19% /

              udev 503779 440 503339 1% /dev

              tmpfs 506183 353 505830 1% /run

              none 506183 5 506178 1% /run/lock

              none 506183 2 506181 1% /run/shm

              /dev/sda1 124496 255 124241 1% /boot

              PS:什么是inode

              linux中  ,文件查找不是通过文件名称来查找的  。现实上是通过inode来实现文件的查找定位的  。我们可以形象的将inode看做是一个指针fip  。当文件存储到磁盘上去的时间  ,文件一定会存放到一个磁盘位置上  ,可以这样想象  ,既然文件数据是存放在磁盘上的  ,若是我们知道这个文件数据的地址  ,当我们想要读写文件的时间 ,我们是不是直接使用这个地址去找到文件就可以了呢?

              是的  ,linux下 ,inode实在就是可以这么以为  ,把inode看作是一个指向磁盘上该文件存储区的地址  。只不外这个地址我们一样平常是没措施直接使用的  ,而是通过文件名来间接使用的  。事实上  ,inode不仅包罗了文件数据存储区的地址  ,还包罗了许多信息  ,好比数据巨细  ,等等文件信息  。可是inode是不生存文件名的  。文件名是生存在一个目录项中 。每一个目录项中都包罗了文件名和inode  。

              我们可以通过一个图来看看目录项  ,inode ,文件数据四者之间的关系  。

              从上图可以看到 ,目录项中包罗了文件名和inode  。