• linux文件管理 -> 系统文件属性


    -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/sda2 c 设备文件(字符设备)打印机,终端 /dev/tty1, /dev/zero s 套接字文件, 进程间通信(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/ls srw-rw-rw-. 1 root root 0 Jan 20 10:35 /dev/log brw-rw----. 1 root disk 8, 0 Jan 20 10:36 /dev/sda crw--w----. 1 root tty 4, 1 Jan 20 10:36 /dev/tty1 lrwxrwxrwx. 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/hosts prw-------. 1 root root 0 Jan 20 10:36 /run/dmeventd-client drwxrwxrwt. 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)删除源文件及其硬链接文件,整个文件会被真正的删除。

    inodeblock

    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 -h Inode size: 256 inode大小 Inode count: 577088 inode数量 Block count: 2307840 block数量 Free blocks: 1538099 空闲block Free inodes: 506378 空闲inode Mount count: 13 挂载次数 Lifetime writes: 7820 MB 写入过的数据
    Linux访问文件过程:
    访问/oldboy/test.txt过程
    1. 访问/的inode 2. 通过/的inode访问/的block 3. 从/的block中找到oldboy的目录名和inode号码 4. 访问/oldboy的inode 5. 通过/oldboy的inode访问/oldboy的block 6. 从/oldboy的block中找到test.txt的文件名和inode号码 7. 访问/oldboy/test.txt的inode 8. 通过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
  • 相关阅读:
    C4.5算法的学习笔记
    jQuery学习笔记(二)jQuery中DOM操作
    jQuery学习笔记(四)jQuery中的动画
    jQuery学习笔记(一)jQuery选择器
    编译JDK源代码,开启Debug信息[转]
    【转】如何debug没有源代码的class文件——eclipse+jad
    【转】JAVA的内省(introspector)与反射(reflection)
    Java中访问修饰符protected的权限 [转]
    [转]我是如何设计并实现一门程序设计语言——一门函数式编程语言Lucida的诞生
    不断重构
  • 原文地址:https://www.cnblogs.com/tim1blog/p/9723961.html
Copyright © 2020-2023  润新知