1. <tr id='tz17p'><strong id='tz17p'></strong><small id='tz17p'></small><button id='tz17p'></button><li id='tz17p'><noscript id='tz17p'><big id='tz17p'></big><dt id='tz17p'></dt></noscript></li></tr><ol id='tz17p'><table id='tz17p'><blockquote id='tz17p'><tbody id='tz17p'></tbody></blockquote></table></ol><u id='tz17p'></u><kbd id='tz17p'><kbd id='tz17p'></kbd></kbd>
  2. <i id='tz17p'><div id='tz17p'><ins id='tz17p'></ins></div></i>

      <code id='tz17p'><strong id='tz17p'></strong></code>
        <span id='tz17p'></span>
        <i id='tz17p'></i>

        1. <ins id='tz17p'></ins>

          <dl id='tz17p'></dl>
          <acronym id='tz17p'><em id='tz17p'></em><td id='tz17p'><div id='tz17p'></div></td></acronym><address id='tz17p'><big id='tz17p'><big id='tz17p'></big><legend id='tz17p'></legend></big></address>

        2. <fieldset id='tz17p'></fieldset>

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

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