linux中设备上没有空间

您所在的位置:网站首页 虚拟机设备上没有空间 linux中设备上没有空间

linux中设备上没有空间

2023-05-06 07:20| 来源: 网络整理| 查看: 265

在linux中设备空间有两个条件决定的:硬盘容量 和 inode

硬盘容量

即硬盘可用容量

inode

即索引节点编号(记录文件的大小,佣有者,权限,区块地方等信息可以通过 stat 命令查看),每个分区中都会有固定大小的inode容量,每个inode节点也会占用硬盘空间,一般是128字节或256字节,inode节点的总数,在格式化时就给定,一般是每1KB或每2KB就设置一个inode,要查看各分区的inode情况可以通过 df -i 查看

硬盘与inode其中一项超额就会造成 设备上没有空间 异常错误,当出现这类错误基本上可以从这两个方面去考虑,一般使用命令  df:

df --help

用法:df [选项]... [文件]...显示每个文件所在的文件系统的信息,默认是显示所有文件系统。长选项必须使用的参数对于短选项时也是必需使用的。  -a, --all             include dummy file systems  -B, --block-size=SIZE  use SIZE-byte blocks      --direct          show statistics for a file instead of mount point      --total           produce a grand total  -h, --human-readable  print sizes in human readable format (e.g., 1K 234M 2G)  -H, --si              likewise, but use powers of 1000 not 1024  -i, --inodes        显示inode 信息而非块使用量  -k            即--block-size=1K  -l, --local        只显示本机的文件系统      --no-sync        取得使用量数据前不进行同步动作(默认)  -P, --portability    使用POSIX 兼容的输出格式      --sync        取得使用量数据前先进行同步动作  -t, --type=类型    只显示指定文件系统为指定类型的信息  -T, --print-type    显示文件系统类型  -x, --exclude-type=类型    只显示文件系统不是指定类型信息  -v            (忽略)      --help        显示此帮助信息并退出      --version        显示版本信息并退出所显示的数值是来自 --block-size、DF_BLOCK_SIZE、BLOCK_SIZE 及 BLOCKSIZE 环境变量中第一个可用的 SIZE 单位。否则,默认单位是 1024 字节(或是 512,若设定 POSIXLY_CORRECT 的话)。SIZE 可以是一个可选的整数,后面跟着以下单位中的一个:KB 1000,K 1024,MB 1000*1000,M 1024*1024,还有 G、T、P、E、Z、Y。请向[email protected] 报告df 的错误GNU coreutils 项目主页:GNU 软件一般性帮助:请向 报告df 的翻译错误要获取完整文档,请运行:info coreutils 'df invocation'

判断硬盘满:(发现有占用率达100% 就可以断定该分区满了)

df -h

判断inode满:(发现有占用率达100%就可以断定该分区碎片文件超多)

df -ia

硬盘满了一般删除不要的临时文件,清空日志文件等不需要的文件即可(最好同时看下inode使用情况)。

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

当不知道有哪些目录中存在大量碎片文件时,可通过命令:(查找出超过10M的目录,再行处理)

find / -type d -size +10M

或者使用命令:(找出目录下文件总数,可能需要执行多次,直到找出具体的目录)

cd / find */ ! -type l | cut -d / -f 1 | uniq -c

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

mkdir /tmp/del_path  #创建临时空目录 rsync --delete  -a -H -v  /tmp/del_path/  /val/logs/   #删除/val/logs/下所有文件



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3