<acronym id='fzm8z'><em id='fzm8z'></em><td id='fzm8z'><div id='fzm8z'></div></td></acronym><address id='fzm8z'><big id='fzm8z'><big id='fzm8z'></big><legend id='fzm8z'></legend></big></address>
  1. <tr id='fzm8z'><strong id='fzm8z'></strong><small id='fzm8z'></small><button id='fzm8z'></button><li id='fzm8z'><noscript id='fzm8z'><big id='fzm8z'></big><dt id='fzm8z'></dt></noscript></li></tr><ol id='fzm8z'><table id='fzm8z'><blockquote id='fzm8z'><tbody id='fzm8z'></tbody></blockquote></table></ol><u id='fzm8z'></u><kbd id='fzm8z'><kbd id='fzm8z'></kbd></kbd>

    <code id='fzm8z'><strong id='fzm8z'></strong></code>

      <fieldset id='fzm8z'></fieldset>

      <i id='fzm8z'></i>
      1. <ins id='fzm8z'></ins>
        <dl id='fzm8z'></dl>

        <span id='fzm8z'></span>
          <i id='fzm8z'><div id='fzm8z'><ins id='fzm8z'></ins></div></i>

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

          • 时间:
          • 浏览:9
          • 来源: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  。