Linux文件屬性

第1章 linux文件屬性
1.1 故障案例:
磁盤空間不足 no space left on device
inode號碼 文件類型 權限 硬鏈接數 屬主 屬組
索引節點 所有者 屬於家庭 大小 修改時間 文件名(不是文件屬性)
index node
×××
1.2 軟連接與硬鏈接區別
[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.3 inode與block
inode 索引節點 ×××號碼 文件屬性信息 (大小 權限 時間 文件類型 硬連接數)
block的位置
沒有文件名
block 數據塊 文件的內容
cat oldboy.txt 與inode和block的關係

inode與block的特點

1.4 /etc/passwd內容
++++++++++++++++++++++

+

題:
企業案例:如果向磁盤寫入數據提示如下錯誤:No space left on device(磁盤空間不足),通過df -h查看磁盤空間,發現沒滿,請問可能原因是什麼? 企業場景什麼情況下會導致這個問題發生?
inode用光了
大量的小文件(定時任務)
1.5 模擬磁盤空間不足
#1.block滿了
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<br/>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<br/>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<br/>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<br/>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
[root@oldboyedu50-lnb ~]# du -sh /var/
|grep G查看/var/下哪些文件大,將以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查看/var/log下哪些文件大,將以G結尾的過濾出來
-rw-r--r-- 1 root root 14G Jul 27 10:16 /var/log/lidao.mp4
df -h 磁盤空間不足
1.df -h哪裏滿了
2.du -sh 一層一層排查
du -sh /
|grep G
3.排查到具體的文件或目錄
4.確認之後再刪除
第2章 排序
seq 20|sort –hr 排序
-h 人類可讀形式排序
-r 逆序 /倒序
du -sh /*|sort –h 查看所有按大小排序
2.1 inode用光

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
2.1.1 準備模擬 block 滿了
[root@oldboyedu50-lnb ~]# df –h 查看block
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解決 block滿了
2.2 模擬inode用光
[root@oldboyedu50-lnb ~]# df –i查看iondes
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

2.2.1 創建多個小文件
[root@oldboyedu50-lnb ~]# touch /app/logs/{1..7}.txt
touch: cannot touch /app/logs/6.txt': No space left on device<br/>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.2.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 inodes滿了
2.2.3 解決

小結:磁盤空間不足
1.block 排查 解決
df -h;一層一層du -sh / 確認之後再刪除

2.inode df -i; 找出系統中目錄大小大於1M 刪除小文件
find / -type d -size +1M
第3章 題:
1)找出系統中小於4k的文件(awk數組)
2)找出系統中目錄大小大於1M 找出哪個目錄中 有大量小文件
目錄的block 存放的是目錄中的文件名
3.1 刪除大量小文件
[root@oldboyedu50-lnb ~]# mkdir -p /tmp/test
[root@oldboyedu50-lnb ~]# cd /tmp/test
[root@oldboyedu50-lnb /tmp/test]# touch {1..500000}
-bash: /bin/touch: Argument list too long列太長
[root@oldboyedu50-lnb /tmp/test]#
[root@oldboyedu50-lnb /tmp/test]# echo {1..500000}|xargs touch
[root@oldboyedu50-lnb /tmp/test]# echo {1..500000}|xargs touch
[root@oldboyedu50-lnb /tmp/test]# ls |wc –l 統計個數
500000
3.2 故障:無法刪除大量文件
[root@oldboyedu50-lnb /tmp/test]# \rm -f
-bash: /bin/rm: Argument list too long列表太長無法刪除
[root@oldboyedu50-lnb /tmp/test]# ls
3.3 解決:刪除大量文件
[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.刪除文件所在目錄 (記錄好權限和屬性)
第4章 顯示用戶
[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.
第5章 權限
5.1 Linux中的權限有哪些
r w x
Rw-用戶的權限 r—組的權限 r—其他權限
5.2 賦予權限的方法:
讀 寫 執行
字符型 R w x
數字型 4 2 1
Chowd:賦予權限
針對目錄用法:chown –R 用戶名 目錄名
chown –R 組名 目錄名
chown –R 用戶名 組名 目錄名
針對文件用法:chown –R (用戶名text文件)(主)
chown –R組名 文件
chown –R用戶名 組名 文件
注:用戶必須加入到組裏
Chmod:修改所屬主和組 只能修改三種屬性:a用戶 g組 o其他
建組:groupadd 加多個用戶給組中:gpasswd –M

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章