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