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/下所有文件