-rw-------. 1 root root 4434 May 30 13:58 ks.cfg
-rw-------. ①:文件类型与权限1 ②:硬链接次数root ③:所属用户root ④:所属组4434 ⑤:文件大小May30 13:58 ⑥⑦⑧:最新修改的时间与日期ks.cfg ⑨:文件或目录名称
Linux系统文件类型
ls -l 文件名 //看第一个字符 格式 说明- 普通文件(文本, 二进制, 压缩, 图片, 日志等) d 目录文件b 设备文件(块设备)存储设备硬盘 /dev/sda1, /dev/sda2c 设备文件(字符设备)打印机,终端 /dev/tty1, /dev/zeros 套接字文件, 进程间通信(socket)p 管道文件l 链接文件//示例[root@xuliangwei ~]# ll -d /etc/hosts /tmp /bin/ls /dev/sda /dev/tty1 /etc/grub2.cfg /dev/log /run/dmeventd-client-rwxr-xr-x. 1 root root 117656 Jun 30 2016 /bin/lssrw-rw-rw-. 1 root root 0 Jan 20 10:35 /dev/logbrw-rw----. 1 root disk 8, 0 Jan 20 10:36 /dev/sdacrw--w----. 1 root tty 4, 1 Jan 20 10:36 /dev/tty1lrwxrwxrwx. 1 root root 22 Jan 13 11:31 /etc/grub2.cfg -> ../boot/grub2/grub.cfg-rw-r--r--. 1 root root 199 Jan 20 11:03 /etc/hostsprw-------. 1 root root 0 Jan 20 10:36 /run/dmeventd-clientdrwxrwxrwt. 61 root root 8192 Jan 21 13:01 /tmp
查看文件类型命令(file)
注意: Linux文件扩展名不代表任何含义, 仅仅是为了运维人员便于识别
[root@xuliangwei ~]# file /etc/hosts/etc/hosts: ASCII text[root@xuliangwei ~]# file /bin/ls/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=aa7ff68f13de25936a098016243ce57c3c982e06, stripped[root@xuliangwei ~]# file /dev/sda/dev/sda: block special[root@xuliangwei ~]# file /dev/tty1/dev/tty1: character special[root@xuliangwei ~]# file /etc/grub2.cfg/etc/grub2.cfg: broken symbolic link to `../boot/grub2/grub.cfg'[root@xuliangwei ~]# file /home/home: directory[root@xuliangwei ~]# file /run/dmeventd-client/run/dmeventd-client: fifo (named pipe)
Linux系统链接文件
软链接:
Linux里的软链接文件类似于Windows系统中的 ”快捷键方式“ 里面具体存放的是源文件的路径,并指向源文件实体,因此通过访问这个 ”快捷方式“ 可迅速访问到源文件。软链接文件类型是l
注意:软链接和源文件是不同类型的文件,所以inode
也不同。
我们只需要执行命令 ln -s 源文件 目标软链接文件 完成软链接创建。 //文件软链接示例 [root@web03 ~]# touch /root/file[root@web03 ~]# ln -s /root/file /tmp/file_bak[root@web03 ~]# ll /tmp/file_bak lrwxrwxrwx 1 root root 10 Sep 29 15:20 /tmp/file_bak -> /root/file // root下file链接dao/tmp下并重命名为file_bak //目录软链接示例
[root@web03 ~]# mkdir /soft/nginx -p
[root@web03 ~]# ln -s /soft/nginx/ /soft/nginx1.1 [root@web03 ~]# ll /soft/nginx1.1 //查看链接指向 lrwxrwxrwx 1 root root 12 Sep 29 15:25 /soft/nginx1.1 -> /soft/nginx/生产软链接作用
1.软件升级
2.企业代码发布 3.不方便目录移动
硬链接:
Linux文件系统中, 多个文件名指向同一个索引节点Inode
是正常且允许的(文件的多个有效的入口),这种情况的文件称为硬链接。
注意:目录不能创建硬链接,硬链接文件可以用rm命令删除
通过执行 ln 源文件 硬链接文件 给文件设置硬链接,来防止重要文件被误删。[root@web03 ~]# ln /root/file /tmp/file_hard[root@web03 ~]# ll /tmp/file_hard -rw-r--r-- 2 root root 0 Sep 29 15:20 /tmp/file_hard[root@web03 ~]# ll /tmp/lrwxrwxrwx 1 root root 10 Sep 29 15:20 file_bak -> /root/file-rw-r--r-- 2 root root 0 Sep 29 15:20 file_hard
软硬链接区别
Linux下软链接和硬链接的区别1)ln命令创建硬链接,ln -s 命令创建软链接。2)目录不能创建硬链接,并且硬链接不可以跨越分区系统。3)目录软链接特别常用,并且软链接支持跨越分区系统。4)硬链接文件与源文件的inode相同,软链接文件与源文件inode不同。5)删除软链接文件,对源文件及硬链接文件无任何影响。6)删除文件的硬链接文件,对源文件及链接文件无任何影响。7)删除链接文件的源文件,对硬链接无影响,会导致软链接失效。8)删除源文件及其硬链接文件,整个文件会被真正的删除。
inode
与block
inode:1) 存放文件的属性信息(包括权限、所属、大小、修改日期等)以及block指针,但不包括文件名(文件名存储在该文件上一级目录的block中,可使用df -ldh查看)2) 一个inode一般是246字节(500M以下的分区是128字节)3) Linux创建一个文件,至少占用一个inode和一个block blcok:1) 存放文件内容2) 一个block一般是4KB,如果文件不足4KB,仍会占据4KB空间3) 磁盘是以block为单位读取数据,每读取一个block消耗一个IO superblock:1) 记录文件系统的控制与管理信息2) block和inode的个数和大小,及其已用和未用数量3) 文件系统的载入时间,最近一次写入数据的时间、最近一次执行fsck进行磁盘检查的时间等4) inode区:各inode组成的区域,每个inode都有一个唯一编号5) 数据块区:各block组成的区域,用于存放文件数据 #查看superblock信息[root@Test01 ~]# dumpe2fs /dev/sda3 -hInode size: 256 inode大小Inode count: 577088 inode数量Block count: 2307840 block数量Free blocks: 1538099 空闲blockFree inodes: 506378 空闲inodeMount count: 13 挂载次数Lifetime writes: 7820 MB 写入过的数据
Linux访问文件过程:
访问/oldboy/test.txt过程 1. 访问/的inode2. 通过/的inode访问/的block3. 从/的block中找到oldboy的目录名和inode号码4. 访问/oldboy的inode5. 通过/oldboy的inode访问/oldboy的block6. 从/oldboy的block中找到test.txt的文件名和inode号码7. 访问/oldboy/test.txt的inode8. 通过test.txt的inode访问test.txt的block
文件系统问题排查
linux系统文件删除原理:
① linux系统下文件名是存在父目录的block里面,并指向这个文件的inode节点,这个文件的inode节点再指向存放这个文件的block数据块。② 我们删除一个文件,实际上并不是清除了inode节点和block数据块。只是在这个文件的父目录里面的block中,删除了这个文件的名字,从而使这个文件名消失,并且无法指向这个文件的inode节点。③ 当没有文件名指向这个inode节点的时候,会同时释放inode节点和存放这个文件的block数据块,并更新inode MAP和block MAP今后让这些位置可以用于放置其他文件数据。
文件彻底删除的标志:
1) 所有硬链接均删除2) 文件无进程调用
磁盘空间满的排查方法:
1) 排查block空间df -h 排查具体哪个分区空间占满;du -sh /* 逐层排查;du -s /* | sort -rn 可按顺序排列du -sh /* | grep G 可筛选出大文件2) 排查inode空间du -ih 排查具体哪个分区inode空间占满;find / -type d -size +1M 排查大于1M的目录(目录存放文件名,如果目录的大小大,说明该目录下文件多)3) 排查文件是否有进程占用lsof | grep delete杀掉或重启进程:kill -9 或 /etc/init.d/进程 restart
大量小文件的删除方法:
#可通过管道进行删除find / -type f -name “*.txt” |xargs rm -f