如何调整系统inode

什么是inode

inode是指Unix文件系统中的索引节点(index node),用于存储关于文件或目录的元数据信息,例如文件大小、拥有者、权限、时间戳等。每个文件或目录在文件系统中都有一个唯一的 inode 号码,通过这个号码可以快速定位并访问文件的元数据信息。因此,inode 在文件系统中起着非常重要的作用,它记录了文件或目录的属性和位置,而实际的文件数据则存储在数据块中。

查看文件/目录的inode信息

bash 复制代码
[root@localhost ~]# stat flannel.yaml
  File: 'flannel.yaml'
  Size: 4821      	Blocks: 16         IO Block: 4096   regular file
Device: fd01h/64769d	Inode: 266507      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2023-12-08 16:58:33.373412736 +0800
Modify: 2023-12-08 16:58:27.716315686 +0800
Change: 2023-12-08 16:58:27.716315686 +0800
 Birth: -

查看inode的使用情况

bash 复制代码
[root@localhost ~]# df -i
Filesystem        Inodes    IUsed     IFree IUse% Mounted on
/dev/sda3         262144   262104        40  100% /data0
devtmpfs        16426671      620  16426051    1% /dev
tmpfs           16429256        6  16429250    1% /dev/shm
tmpfs           16429256     1481  16427775    1% /run
tmpfs           16429256       16  16429240    1% /sys/fs/cgroup
/dev/sda1         786432   172461    613971   22% /
/dev/sda5         524288       39    524249    1% /usr
/dev/sda6         524288    14089    510199    3% /var

调整inode数量

如需要调整inode节点的数量需要进行以下几步:

卸载文件系统

bash 复制代码
[root@localhost ~]# umount /data0

建立文件系统,指定inode节点数

bash 复制代码
[root@localhost ~]# mkfs.ext4 /dev/sda3 -N 18276352

修改fstab文件

bash 复制代码
[root@localhost ~]# vi /etc/fstab
/dev/sda6 /data0 ext4 defaults 1 2

挂载文件系统

csharp 复制代码
[root@localhost ~]# mount -a

查看修改后的inode参数

bash 复制代码
[root@localhost ~]# dumpe2fs -h /dev/sda3 | grep node

注意:调整inode数会格式化磁盘,执行前应确定磁盘上没有重要数据或是先备份数据

清理 inode

bash 复制代码
# 分析根目录下的每个二级目录下有多少个文件
for i in /*; do echo $i; find $i | wc -l; done

逐层进入inode占用最高的目录,继续执行上述指令,逐步定位占用过高空间的文件或目录,最后进行相应清理。

本次故障经查发现/var/spool/postfix/maildrop目录占用较高,永久性解决该问题需要进行如下配置修改:

bash 复制代码
[root@localhost ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO="" # 默认为MAILTO=root

[root@localhost ~]#  crontab -e 
MAILTO="" # 在最前面直接加入MAILTO=""
46 8 * * * /usr/sbin/ntpdate tiger.com.cn >/dev/null

最后重启crond服务,之后执行crond定时任务时将不会再发送邮件。

如果是var/spool/clientmqueue占用,两种方法:

  • 删除此目录;
  • 在cron 任务中的后面加上 > /dev/null 2>&1。
相关推荐
2035去旅行8 小时前
bootcmd 详细讲解
linux·嵌入式·arm·soc
陈希1239 小时前
Linux 防火墙配置实战:firewalld、iptables 与云安全组
linux·运维·服务器
女神下凡10 小时前
芯参谋(95):嵌入式文件系统_开发指南
linux·服务器·arm开发·驱动开发·设计规范
且从容.13 小时前
Ubuntu安装flume
linux·ubuntu·flume
承渊政道13 小时前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
且从容.16 小时前
ubuntu安装flink
linux·ubuntu·flink
爱和冰阔落18 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
程序员沉梦听雨18 小时前
WSL2的安装与使用
linux·wsl
微小的鱼18 小时前
Linux的渲染与显示系统链路
android·java·linux
lisanmengmeng18 小时前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器