linux 文件属性详解
内容:
1. inode 和 block 特点与查看
2. 磁盘空间满了的三种常见故障类型排查与解决
3. 文件类型详解与查看
4. linux 用户类型及相关文件
5. 服务器的连接与安全
6. 软链接与硬链接的区别, 特点及创建
7. linux 下彻底删除一个文件的原理与步骤
8. linux 下三种时间介绍
第 2 章 inode 与 block
1. inode 存放文件的属性,block 的位置
2. 创建一个非空文件至少要占用一个 inode 和至少一个 block
3. 在同一个分区中,如果两个文件的 inode 号码相同,这两个文件互为硬链接,硬链接相当于是文件
不同的入口
4. block 是存放数据的空间
5. block 大小 4K,比较大的文件会占用多个 block,比较小的文件(1K)剩余的空间无法使用
6. 磁盘读取数据是按 block 为单位读取的
7. 每读取一个 block 就会消耗一次磁盘 I/O(input/output 磁盘读写)
预备姿势:
大房子(硬盘)--> 划分隔断(分区)--> 装修(格式化)--> 装修风格(文件系统类型)--> 安装门窗(挂载)
inode 和 block 是在格式化创建文件系统的时候诞生
用户→文件名→inode→block(文件内容)
l ls -lhi /etc/hosts 查看某个文件 inode 号码
[root@oldboy oldboy]# ls -lhi gao
total 12K
405094 -rw-r--r--. 1 root root 16 Dec 12 14:38 feng
390247 drwxr-xr-x. 2 root root 4.0K Dec 15 03:54 n
l df -i 查看系统中一共有多少 inode 数量
[root@oldboy n]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 593344 58618 534726 10% /
tmpfs 60748 1 60747 1% /dev/shm
/dev/sda1 51200 42 51158 1% /boot
l ls -lhi /etc/hosts 查看某个文件大小
[root@oldboy n]# ls -lhi /etc/hosts
260127 -rw-r--r--. 2 root root 177 May 20 2017 /etc/hosts
l df -h 查看磁盘空间使用情况
[root@oldboy n]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 1.7G 6.7G 20% /
tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
软链接和硬连接的区别
空间不足)
创建测试环境
mkdir -p /app/logs
dd if=/dev/zero of=/dev/sdc bs=8K count=10 创建指定大小文件
ls -l /dev/sdc
mkfs.ext4 /dev/sdc 格式化并创建文件系统(ext4)
mount -o loop /dev/sdc /app/logs 挂载
dd if=/dev/zero of=/dev/sdc bs=8K count=10 模拟大文件
解决:删大文件,腾出空间
touch {1..10} 模拟多个文件
解决:删小文件,腾出名额限制
错误:inode 用光了
原因:大量的小文件 --- 定时任务书写错误导致
第 3 章 文件类型
扩展名 .log .txt .conf .avi 用来区分不同类型的文件
.sh 脚本(命令大礼包)
- (ls) f (file) 普通文件
d d 目录
l l 软链接 符号链接 快捷方式
1. 纯文本文件 text /etc/hosts
2. 二进制文件(命令) /bin/ls
3. 数据文件 (data) 压缩包
file /tmp/etc.tar.gz
UID user id 用户 id
GID group id 用户组 id
root 皇帝 UID==0
虚拟用户 傀儡 linxu 下面每个程序、进程都需要一个对应的用户和组
无法登录系统 UID==1--499
普通用户 百姓 UID=500+ (6 万多)
[root@oldboy n]# id root
uid=0(root) gid=0(root) groups=0(root)
/etc/hosts 主人 亲戚 陌生人
属主(所有者) 属组 其他区用户
[root@oldboy n]# ls -l 6
-rw-r--r--. 1 root root 0 Dec 22 07:28 6
- 普通文件 rw- 所有者 r-- 属组 r-- 其他用户
r 读 4
w 写 2
x 可执行(命令 脚本) 1
- 没有权限
/etc/passwd 存放用户的信息
/etc/shadow 存放用户密码
/etc/group 存放用户组信息
/etc/gshadow 存放用户组密码
centos6.9 默认 shell /bin/bash
1. ip
2. 用户
3. 密码
4. 端口号 22
1. 修改远程连接端口号
2. 禁止 root 用户远程登录系统
文件(超市)的入口 硬链接
文件(超市)的入口数量 硬链接数量
在同一个分区中,inode 号相同的文件互为硬链接
[root@oldboy gao]# ln yun.txt yun.txt_hard
[root@oldboy gao]# ls -lhi yun.txt*
390247 -rw-r--r--. 2 root root 0 Dec 22 08:24 yun.txt
390247 -rw-r--r--. 2 root root 0 Dec 22 08:24 yun.txt_hard
1. 硬链接与原文件在同一分区,inode 相同
2. 硬链接不可跨文件系统创建
3. 删除原文件,硬链接可用
4. 不能对目录创建硬链接
相当于 windows 的快捷方式
指向源文件
源文件丢失,软链接失效
[root@oldboy gao]# ln -s yun.txt yun.txt_soft
[root@oldboy gao]# ls -lhi yun*
390247 -rw-r--r--. 2 root root 0 Dec 22 08:24 yun.txt
390247 -rw-r--r--. 2 root root 0 Dec 22 08:24 yun.txt_hard
405095 lrwxrwxrwx. 1 root root 7 Dec 22 08:29 yun.txt_soft -> yun.txt 指向源文件
1)软链接可跨文件系统建立
2)创建软链接尽量使用绝对路径(相对路径 -- 源文件路径改变软链接不可用)
3)删除源文件,软链接失效
4)指向源文件,相当于 windows 的快捷方式
特点: 一闪一闪亮晶晶
ln -s /oldboy/ett.txt ett.txt_soft
1) 删除原文件,软连接不可用
2) 删除硬链接,都没有影响
3) 删除源文件和硬链接,相当于没有任何入口(硬链接数为 0)
1. 文件的硬链接数为 0 rm
2. 进程调用数为 0(谁还在使用这个文件) lsof
分析:你把文件删除了(硬链接),但这个文件还有进程在使用,所以这个文件并没有被彻底删除,最终导致磁盘空间不足
就好像你只是把超市的大门封住了,但超市本身还在
解决步骤:
1. 模拟环境
seq 500000 >>/var/log/messages
2. 查看磁盘空间 df -h 逐层排查
[root@oldboy /]# df -h 查看那个分区占空间大
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 6.3G 2.1G 75% /
tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
3.[root@oldboy /]# du -sh /var/* |grep "G" 进目录进一步排查哪个子目录 / 文件大
4.6G /var/log
[root@oldboy /]# du -sh /var/log/* |grep "G"
4.6G /var/log/messages
4. 删除文件 --- 询问 boss 后删除
\rm /var/log/messages -f
检查:
5. 查看磁盘空间
[root@oldboy /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 6.3G 2.1G 75% /
tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
磁盘空间并没有被释放 由此 --- 有某个文件并没有被彻底删除
6.lsof |grep messages 查看哪个进程在使用被删除的文件
[root@oldboy /]# lsof |grep messages
rsyslogd 2491 root 1w REG 8,3 4888893610 141095 /var/log/messages (deleted)
标志(detele)这个文件没有被彻底删除(硬链接数为 0,进程调用数不为 0)
7. 重启进程 /etc/init.d/rsyslog restart
再次检查
8. 查看磁盘空间 df -h
[root@oldboy /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 1.7G 6.7G 21% /
tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
磁盘空间被释放
1. 找出系统中硬链接数为 0,进程调用数不为 0 的文件(没有被彻底删除的文件)
lsof |grep delete
2. 排查哪个文件占地大 du - sh /* |grep "G"
[root@oldboy /]# du -sh /*|grep "G"
du: cannot access `/proc/50234/task/50234/fd/4': No such file or directory
du: cannot access `/proc/50234/task/50234/fdinfo/4': No such file or directory
du: cannot access `/proc/50234/fd/4': No such file or directory
du: cannot access `/proc/50234/fdinfo/4': No such file or directory
1.1G /usr
4.7G /var
3. 以后会学习各种软件 / 服务日志及命令
工作中 lsof |grep delete 排查
df -h 哪里满了
du -sh /* 一层一层排查 具体哪个目录 / 文件
确认之后,询问 boss 是否 删除
某个目录下有大量的小文件
---- 定时任务错误
l 解决方法:找出系统中目录大小大于 1M
[root@oldboy oldboy]# ls -lhd xiaodong/
drwxr-xr-x. 2 root root 4.0K May 20 23:22 xiaodong/
[root@oldboy oldboy]# du -sh xiaodong/
11M xiaodong/
目录本身大小和目录下文件数量有关,与文件大小无关
目录占地面积 ----- 文件越多,占地越大
touch {1..10000}.txt
[root@oldboy oldboy]# ls -ldih xiaodong
394659 drwxr-xr-x. 2 root root 252K May 20 16:53 xiaodong
删除文件太多,删不了
[root@oldboy xiaodong]# \rm -f *.txt
-bash: /bin/rm: Argument list too long
解决:
1)ls *.txt |xargs rm 删除大量文件
[root@oldboy xiaodong]# ls *.txt|xargs rm
[root@oldboy xiaodong]# ls
注:2)删上亿个文件 一点一点删 否则会卡
3)删除目录(删除之前记录好目录的权限和所有者)
错误:
[root@oldboy xiaodong]# touch {1..400000}.txt
-bash: /bin/touch: Argument list too long
解决:
echo {1..500000}.txt |xargs touch 创建太多文件
mtime modify time 【修改时间】文件 / 目录的修改时间。文件内容修改
ctime change time 【属性改变时间】文件 / 目录属性的改变时间,大小,硬链接数,权限,所有者,所属的组,类型
atime access time 【访问时间】文件 / 目录的访问时间,cat 查看
[root@oldboy oldboy]# stat oldboy.txt
File: `oldboy.txt'
Size: 29 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 405110 Links: 1
Access: (0644/-rw-r--r--) Uid: (0/ root) Gid: (0/ root)
Access: 2017-12-22 03:11:51.662787272 +0800
Modify: 2017-05-20 06:27:29.100976131 +0800
Change: 2017-05-20 06:27:29.100976131 +0800
1. 文件属性总体介绍
2. inode 与 block 怎么来的 啥意思 特点
3. 企业案例 磁盘空间不足 原因
4. 用户分类
5. /etc/passwd 每一列含义
6. linux 权限
7. linux 软链接与硬链接
原文:http://blog.51cto.com/13517084/2055714
来源: http://www.bubuko.com/infodetail-2443893.html