inode引起的Linux无法创建新文件,磁盘空间不足

  df -h,判断硬盘空间是否已经满了,占用率达100% ,就可以断定该分区满了。

  df -ia,占用率达100%,也会导致无法创建新文件。一般都是存在大量小文件引起的。

  inode包含文件的元信息,具体来说有以下内容:
  * 文件的字节数
  * 文件拥有者的User ID
  * 文件的Group ID
  * 文件的读、写、执行权限
  * 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。
  * 链接数,即有多少文件名指向这个inode
  * 文件数据block的位置
 
  每个文件都必须有一个inode,因此有可能发生inode已经用光,但是硬盘还未存满的情况。这时,就无法在硬盘上创建新文件。
 
  

  inode满了一般就是垃圾小文件越多造成的,linux下有很多服务会生成日志文件,如果处理不当,几年下来删除都是个头痛事(上万文件后 rm 使用就困难,甚至rm无法全部删除)。常见 crontab 定时服务就会产生邮件日志,一般不需要邮件的可在 crontab -e 中最上面添加一行  MAILTO=""  关闭邮件发送。

  当找到的目录中存在上百万文件时 rm 是无法一次性删除的,可以使用rsync命令来删除:

  mkdir /tmp/del_path  #创建临时空目录

       rsync --delete  -a -H -v  /tmp/del_path/  /val/logs/   #删除/val/logs/下所有文件

原文地址:https://www.cnblogs.com/lnlvinso/p/10171174.html