inode --> 索引节点,存储了文件的元信息用于描述除了文件名之外的所有文件特征,包括文件大小,数据块位置,文件类型、所有设备名、硬链接数、读写权限,创建时间及修改时间,最近一次打开时间等。
可以通过命令:
(1)stat file1来查看file1文件的inode内容;
[root@www 192.168.206.141 /export ] # stat /opt/newDisk.sh File: `/opt/newDisk.sh' Size: 412 Blocks: 8 IO Block: 4096 regular file Device: 801h/2049d Inode: 3145745 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2015-01-12 15:02:47.474004393 +0800 Modify: 2015-01-12 15:02:40.982999877 +0800 Change: 2015-01-12 15:02:40.992999778 +0800
(2) ls -i file2 查看文件名对应的 inode 号码
[root@www 192.168.206.141 /export ] # ls -i /opt/newDisk.sh 3145745 /opt/newDisk.sh
每个文件都有对应的inode节点。如果两个文件名对应同一个inode节点,说明inode有硬链接。
当文件数过多时,inode节点数也会很多,这时有可能导致inode节点用完,系统提示"no space"
inode怎么来的呢?分区时系统自动划分的。
具体说,在硬盘上格式化分区时,要指定inode的大小和数据块的大小。对于ext2文件系统一定会包含inode空间和数据块空间两部分。当文件个数太多时,inode空间充满了inode节点,磁盘就不能用了。通常,文件系统磁盘空间中大约百分之一空间分配给了inode表。
(1)查看磁盘inode使用情况:
[root@www 192.168.206.141 /export ] # df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda1 7864320 23524 7840796 1% / tmpfs 126544 1 126543 1% /dev/shm /dev/sdb5 1310720 11 1310709 1% /export1 /dev/sdd1 131072 11 131061 1% /export2 /dev/sdc1 131072 11 131061 1% /export
(2)遇到inode节点占满的可能解决办法如下:
1)--> /var/spool/postfix/maildrop/下可能会有很多由crontab发送的邮件导致的文件,此时只要更改/etc/crontab中mailto=root,更改为mail=""
2)-->重新格式化硬盘,指定inode节点数量
linux的文件系统的类型:
ext(2,3,4),xfs,ffs,ufs,reiserfs,jfs,vfat(fat32),ntfs
交换文件系统:swap
网络文件系统:nfs,smbfs(cifs)
分布式文件系统:ceph
光盘文件系统:isso9660
btrfs,
磁盘设备文件:
/dev/hd:
IDE:并口,133MB/s
/dev/sd:
USB:串行
SATA:串行,6Gbps/8
SCSI:并行,(Small Computer System Interface)
SAS:串行,
/dev/sd[a-z]
分区:数字
/dev/sda1
/dev/sda2
分区编号:
主+扩展:1-4
逻辑:5
/proc目录:
Linux内核提供了一种通过/proc文件系统,在运行时访问内核内部的数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。
/proc 下还有三个很重要的目录:net,scsi和sys.sys目录是可写的,可以通过它来访问或修改内核的参数,而net和scsi则依赖于内核配置.
子文件或子文件夹简介:
/proc/buddyinfo 每个内存区中的每个order有多少块可用,和内存碎片问题有关 /proc/cmdline 启动时传递给kernel的参数信息 /proc/cpuinfo cpu的信息 /proc/crypto 内核使用的所有已安装的加密密码及细节 /proc/devices 已经加载的设备并分类 /proc/dma 已注册使用的ISA DMA频道列表 /proc/execdomains Linux内核当前支持的execution domains /proc/fb 帧缓冲设备列表,包括数量和控制它的驱动 /proc/filesystems 内核当前支持的文件系统类型 /proc/interrupts x86架构中的每个IRQ中断数 /proc/iomem 每个物理设备当前在系统内存中的映射 /proc/ioports 一个设备的输入输出所使用的注册端口范围 /proc/kcore 代表系统的物理内存,存储为核心文件格式,里边显示的是字节数,等于RAM大小加上4kb /proc/kmsg 记录内核生成的信息,可以通过/sbin/klogd或/bin/dmesg来处理 /proc/loadavg 根据过去一段时间内CPU和IO的状态得出的负载状态,与uptime命令有关 /proc/locks 内核锁住的文件列表 /proc/mdstat 多硬盘,RAID配置信息(md=multiple disks) /proc/meminfo RAM使用的相关信息 /proc/misc 其他的主要设备(设备号为10)上注册的驱动 /proc/modules 所有加载到内核的模块列表 /proc/mounts 系统中使用的所有挂载 /proc/mtrr 系统使用的Memory Type Range Registers (MTRRs) /proc/partitions 分区中的块分配信息 /proc/pci 系统中的PCI设备列表 /proc/slabinfo 系统中所有活动的 slab 缓存信息 /proc/stat 所有的CPU活动信息 /proc/sysrq-trigger 使用echo命令来写这个文件的时候,远程root用户可以执行大多数的系统请求关键命令,就好像在本地终端执行一样。要写入这个文件,需要把/proc/sys/kernel/sysrq不能设置为0。这个文件对root也是不可读的 /proc/uptime 系统已经运行了多久 /proc/swaps 交换空间的使用情况 /proc/version Linux内核版本和gcc版本 /proc/bus 系统总线(Bus)信息,例如pci/usb等 /proc/driver 驱动信息 /proc/fs 文件系统信息 /proc/ide ide设备信息 /proc/irq 中断请求设备信息 /proc/net 网卡设备信息 /proc/scsi scsi设备信息 /proc/tty tty设备信息 /proc/net/dev 显示网络适配器及统计信息 /proc/vmstat 虚拟内存统计信息 /proc/vmcore 内核panic时的内存映像 /proc/diskstats 取得磁盘信息 /proc/schedstat kernel调度器的统计信息 /proc/zoneinfo 显示内存空间的统计信息,对分析虚拟内存行为很有用 以下是/proc目录中进程N的信息 /proc/N pid为N的进程信息 /proc/N/cmdline 进程启动命令 /proc/N/cwd 链接到进程当前工作目录 /proc/N/environ 进程环境变量列表 /proc/N/exe 链接到进程的执行命令文件 /proc/N/fd 包含进程相关的所有的文件描述符 /proc/N/maps 与进程相关的内存映射信息 /proc/N/mem 指代进程持有的内存,不可读 /proc/N/root 链接到进程的根目录 /proc/N/stat 进程的状态 /proc/N/statm 进程使用的内存的状态 /proc/N/status 进程状态信息,比stat/statm更具可读性 /proc/self 链接到当前正在运行的进程
fdisk命令详解:
【options】
-v 打印 fdisk的版本信息并退出;
-l 列出所有安装的磁盘及分区信息(不跟参数列出系统上所有磁盘信息,跟参数列出指定挂在信息);
[root@www 192.168.206.141 /proc ] # fdisk -l /dev/sda1 Disk /dev/sda1: 128.8 GB, 128847970304 bytes 255 heads, 63 sectors/track, 15664 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000
例如:fdisk /dev/sda 可进入分割硬盘模式。
【options】【主要】
1、输入m显示所有命令示例;
2、输入p显示硬盘分割详情;
3、输入a设定磁盘启动区;
4、输入n设定新的硬盘分割区;
4.1、输入e硬盘为[延伸]分割区(extend);
4.2、输入p硬盘为[主要]分割区(primary);
5、输入t改变硬盘分割区属性;
6、输入d删除硬盘分割区属性;
7、输入q结束不存入硬盘分割区属性;
8、输入w结束并写入硬盘分割区属性;