第1章 inux文件属性

1.1 故障案例:no space left on device

[root@oldboyedu50-lnb ~]# ls -lhi

total 304K

 660149     -   rw-r--r--   1    root    root      387 Jul 13 09:39 1.txt

 660139     -   rw-r--r--.  1    root    root        0 Jul 11 03:21 alex.txt

 660134     -   rw-------.  1    root    root     1.1K Jul 10 18:25 anaconda-ks.cfg

1046995     d   rwxr-xr-x.  2    root    root     4.0K Jul 18 12:56 data

 654083     -   rw-r--r--.  1    root    root      22K Jul 10 18:25 install.log

 654084     -   rw-r--r--.  1    root    root     5.8K Jul 10 18:24 install.log.syslog

 660140     -   rw-r--r--.  1    root    root        0 Jul 11 03:21 lidao.txt

 660151     -   rw-r--r--   1    root    root      893 Jun 26 17:18 node_exporter.yml

第1列      inode索引节点

第2列      文件类型权限

第3列      硬链接数

第4列      属主

第5列      属组

第6列      大小

第7-9列   修改时间

第10列     文件名(不是文件属性)

1.2 inodeblock

inode  索引节点   文件属性信息 (大小 权限 时间 文件类型 硬连接数)

                              block的位置

                              没有文件名

block 数据块                  文件的内容

inode与block的特点

实例1-1             企业案例:如果向磁盘写入数据提示如下错误:No space left on device(磁盘空间不足),通过df -h查看磁盘空间,发现没满,请问可能原因是什么?     企业场景什么情况下会导致这个问题发生?

1.block用完

1>模拟环境

seq 500000000   >>/var/log/nt.avi

[root@oldboyedu50-lnb ~]# du -sh /

du: cannot access `/proc/2217/task/2217/fd/4': No such file or directory

du: cannot access `/proc/2217/task/2217/fdinfo/4': No such file or directory

du: cannot access `/proc/2217/fd/4': No such file or directory

du: cannot access `/proc/2217/fdinfo/4': No such file or directory

16G /

[root@oldboyedu50-lnb ~]# du -sh /*

8.0K   /app

8.0K   /backup

7.6M   /bin

38M /boot

68K /data

220K   /dev

30M /etc

24K /home

214M   /lib

27M /lib64

16K /lost+found

4.0K   /media

4.0K   /mnt

52K /oldboy

32K /opt

du: cannot access `/proc/2218/task/2218/fd/4': No such file or directory

du: cannot access `/proc/2218/task/2218/fdinfo/4': No such file or directory

du: cannot access `/proc/2218/fd/4': No such file or directory

du: cannot access `/proc/2218/fdinfo/4': No such file or directory

0  /proc

372K   /root

16M /sbin

4.0K   /selinux

4.0K   /srv

0  /sys

99M /tmp

1.1G   /usr

14G /var

2.查找大文件

[root@oldboyedu50-lnb ~]# du -sh /var/*|grep G

14G /var/log

[root@oldboyedu50-lnb ~]# du -sh /var/log/*|grep G

14G /var/log/lidao.mp4

[root@oldboyedu50-lnb ~]# ls -lh /var/log/lidao.mp4

-rw-r--r-- 1 root root 14G Jul 27 10:16 /var/log/lidao.mp4

2.inode用光

1.>模拟环境

mkdir -p /app/logs 

dd if=/dev/zero of=/dev/sdc bs=8K  count=10

ls -l /dev/sdc

mkfs.ext4 /dev/sdc

mount -o loop /dev/sdc /app/logs

[root@oldboyedu50-lnb ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda3        19G   16G  2.4G  87% /

tmpfs           931M     0  931M   0% /dev/shm

/dev/sda1       190M   40M  141M  22% /boot

/dev/sdc         73K   14K   55K  21% /app/logs

[root@oldboyedu50-lnb ~]# ls -lh /bin/ls

-rwxr-xr-x. 1 root root 115K Mar 23  2017 /bin/ls

[root@oldboyedu50-lnb ~]# cp /bin/ls /app/logs/

cp: writing `/app/logs/ls': No space left on device

[root@oldboyedu50-lnb ~]# \rm -f /app/logs/ls

[root@oldboyedu50-lnb ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda3        19G   16G  2.4G  87% /

tmpfs           931M     0  931M   0% /dev/shm

/dev/sda1       190M   40M  141M  22% /boot

/dev/sdc         73K   14K   55K  21% /app/logs

[root@oldboyedu50-lnb ~]# df -i

Filesystem      Inodes IUsed   IFree IUse% Mounted on

/dev/sda3      1250928 57431 1193497    5% /

tmpfs           238282     1  238281    1% /dev/shm

/dev/sda1        51200    39   51161    1% /boot

/dev/sdc            16    11       5   69% /app/logs

1>创建多个小文件

[root@oldboyedu50-lnb ~]# touch /app/logs/{1..7}.txt

touch: cannot touch `/app/logs/6.txt': No space left on device

touch: cannot touch `/app/logs/7.txt': No space left on device

[root@oldboyedu50-lnb ~]# touch  /app/logs/oldboy.txt

touch: cannot touch `/app/logs/oldboy.txt': No space left on device

2>排查

[root@oldboyedu50-lnb ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda3        19G   16G  2.4G  87% /

tmpfs           931M     0  931M   0% /dev/shm

/dev/sda1       190M   40M  141M  22% /boot

/dev/sdc         73K   14K   55K  21% /app/logs

[root@oldboyedu50-lnb ~]# df -i

Filesystem      Inodes IUsed   IFree IUse% Mounted on

/dev/sda3      1250928 57431 1193497    5% /

tmpfs           238282     1  238281    1% /dev/shm

/dev/sda1        51200    39   51161    1% /boot

/dev/sdc            16    16       0  100% /app/logs

1.block    排查                               解决

          df -h;一层一层du -sh /              确认之后再删除

         

2.inode   df -i; 找出系统中目录大小大于1M     删除小文件

                 find / -type d   -size +1M 

[root@oldboyedu50-lnb ~]# mkdir  -p /tmp/test

[root@oldboyedu50-lnb ~]# cd /tmp/test

[root@oldboyedu50-lnb /tmp/test]# echo {1..500000}|xargs touch

[root@oldboyedu50-lnb /tmp/test]# ls |wc -l

500000

3>故障:无法删除大量文件

[root@oldboyedu50-lnb /tmp/test]# \rm -f *

-bash: /bin/rm: Argument list too long

4>解决:删除大量文件

[root@oldboyedu50-lnb /tmp/test]# ls |xargs rm

[root@oldboyedu50-lnb /tmp/test]# ls

[root@oldboyedu50-lnb /tmp/test]# ll

total 0

小结:删除大量小文件

1.ls/find +|xargs rm

2.缩小范围删除

  ls 1*  |xargs rm

  ls 2*  |xargs rm

3.删除文件所在目录 (记录好权限和属性)

第2章 用户分类

2.1 root用户(超级管理员)

2.2 系统用户(虚拟用户)

2.3 普通用户

[root@oldboyedu50-lnb /tmp/test]# id

uid=0(root) gid=0(root) groups=0(root)

[root@oldboyedu50-lnb /tmp/test]# id oldboy

uid=500(oldboy) gid=500(oldboy) groups=500(oldboy)

[root@oldboyedu50-lnb /tmp/test]# id  nobody

uid=99(nobody) gid=99(nobody) groups=99(nobody)

[root@oldboyedu50-lnb /tmp/test]# su - oldboy

[oldboy@oldboyedu50-lnb ~]$ logout

[root@oldboyedu50-lnb /tmp/test]# su - nobody

This account is currently not available.