RH124-14 文件系統和磁盤設備管理
第十四章 文件系統和磁盤設備管理
14.1 文件系統和磁盤設備的管理與使用
磁盤設備
磁盤設備是支持隨機讀寫數據的設備.
在物理機器上,設備文件默認都存放在/dev/目錄下,第一個硬盤是/dev/sda,第二個硬盤是/dev/sdb,如此類推.第一個硬盤的第一個分區是/dev/sda1,第二個分區是/dev/sda2,如此類推.
在xen或kvm的虛擬機上,硬盤的名字則是/dev/xvda或/dev/vda等,如此類推
有些存放數據的設備並不是直接硬件對應的設備文件,而是通過軟件生成的塊設備文件 例如lvm和軟raid設備文件。
文件系統
建立在磁盤設備之上,讓系統支持以文件、目錄的形式訪問設備的數據。
# df -h
# du /root
# du -sh /var/log
文件系統的掛載與卸載
要以目錄、文件的形式訪問設備上的數據,設備必須使用文件系統格式化。格式化後方等掛載使用。
# blkid
# blkid /dev/vda1
掛載(server0)
# mount /dev/vdb1 /mnt/mydata
# mount UUID="xxxx" /mnt/mydata
# cd /mnt/mydata
# umount /mnt/mydata 會失敗,提示設備忙
# lsof /mnt/mydata
# cd
# umount /mnt/mydata
練習:在server0上完成文件系統掛載
1) 執行lab fs setup 部署實驗環境
2) 查看設備id
# blkid
/dev/vda1: UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" TYPE="xfs"
/dev/vdb1: UUID="72e49c5f-e0fe-4dfd-9245-9d93aac34d18" TYPE="xfs"
3) 新建目錄/mnt/newspace,
並且把其中一個設備掛載到此目錄
# mkdir /mnt/newspace
# mount /dev/vdb1 /mnt/newspace
# df -h
文件系統 容量 已用 可用 已用% 掛載點
....
/dev/vdb1 509M 26M 483M 6% /mnt/newspace
4)進入到該目錄並新建目錄newdir,並在新建的目錄下新建文件
# cd /mnt/newspace/
# mkdir newdir
# touch newdir/newfile
# cp /etc/fstab /mnt/newspace/newdir/
# ls -l /mnt/newspace/newdir/
總用量 4
-rw-r--r--. 1 root root 313 1月 29 19:08 fstab
-rw-r--r--. 1 root root 0 1月 29 19:08 newfile
5) 退出掛載目錄並且取消掛載
# umount /mnt/newspace/
umount: /mnt/newspace:目標忙。
退出所在目錄
(有些情況下通過 lsof(8) 或 fuser(1) 可以
找到有關使用該設備的進程的有用信息)
# lsof /mnt/newspace/
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 1633 root cwd DIR 253,17 19 128 /mnt/newspace
lsof 1956 root cwd DIR 253,17 19 128 /mnt/newspace
lsof 1957 root cwd DIR 253,17 19 128 /mnt/newspace
# cd
# pwd
/root
# umount /mnt/newspace/
6) 強烈建議使用uuid進行掛載
# blkid
/dev/vda1: UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" TYPE="xfs"
/dev/vdb1: UUID="72e49c5f-e0fe-4dfd-9245-9d93aac34d18" TYPE="xfs" 獲得uuid
# mount UUID="72e49c5f-e0fe-4dfd-9245-9d93aac34d18" /mnt/newspace
持久化掛載: 在RH134會講到
14.2 管理鏈接文件
字符鏈接文件(軟鏈接文件)
相當於windows的快捷方式文件
它是一個獨立的文件,該文件指向另一個文件
它占用磁盤空間
可以跨文件系統創建
可以對目錄建立字符鏈接文件
硬鏈接文件
相當於同一份數據多個名字,擁有原文件的一些屬性,僅僅是路徑不同。
它不會另外占用磁盤空間
起到文件數據冗余的作用
僅僅支持同一個文件系統的文件創建硬鏈接
不支持對目錄創建
創建硬鏈接文件
# echo "Hello World" > newfile.txt
# ls -l newfile.txt
# ln newfile.txt /tmp/newfile-hlink.txt
# ls -l newfile.txt /tmp/newfile-hlink.txt
# rm -f newfile.txt
# ls -l /tmp/newfile-hlink.txt
# cat /tmp/newfile-hlink.txt
創建字符鏈接文件
# ln -s /tmp/newfile-hlink.txt /tmp/newfile-symlink.txt
# ls -l /tmp/newfile-hlink.txt /tmp/newfile-symlink.txt
# rm -f /tmp/newfile-hlink.txt
# ls -l /tmp/newfile-symlink.txt
# cat /tmp/newfile-symlink.txt
# ln -s /etc /root/configfiles
# cd /root/configfiles
# pwd
查找文件
# updatedb 用於掃描系統的文件,並保存在一個文件中, man update可以看到 放在/var/...中,所以查看很快,新下載的則不會,需要再次輸入這個命令
# locate passwd
# locate -i messages
不區分大小寫
# locate -n 5 snow.png
# find / -name sshd_config
# find / -iname ‘*.txt‘
# find /etc/ -name ‘*pass*‘
# find / -iname ‘*messages*‘
# find /home/student -user student
# find /home/student -group student
# find /home/student -gid 1000
# find / -user root -group mail
# find /home -perm 764 完全匹配權限
# find /home -perm -324 擁有者至少有011(-wx),組010(-w-),其他人100(r--)
# find /home -perm /442 擁有者至少有r,或者組成員至少由r,或者其他人至少有w權限
# find /home/student -size 10M 等於10M
# find /home/student -size +10G 大於10G
# find /home/student -size -10k 少於10k
# find / -mmin 120 離修改時間剛好是120分鐘
# find / -mmin +200 已經修改超過200分鐘
# find / -mmin -150 離修改時間少於150分鐘
# find /etc -type d
# find /etc -type l
# find /dev -type b
# find /usr -type f -links +1 查找所有硬鏈接數超過1的文件
把查找到滿足條件的文件進一步處理
# mkdir /tmp/bin
# find /usr/bin -size +50k -exec cp {} /tmp/bin \;
=========================================================================================
[[email protected] Desktop]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 10G 3.1G 7.0G 31% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 490M 140K 490M 1% /dev/shm
tmpfs 490M 832K 490M 1% /run
tmpfs 490M 0 490M 0% /sys/fs/cgroup
14.2
[[email protected] Desktop]# ls -li /
total 32
781 lrwxrwxrwx. 1 root root 7 May 7 2014 bin -> usr/bin 你訪問他是訪問文件他指向的文件,有自己的大小,權限宿主,空間。
160 dr-xr-xr-x. 4 root root 4096 Jul 11 2014 boot
3 drwxr-xr-x. 19 root root 3080 Jun 11 12:13 dev
132 drwxr-xr-x. 133 root root 8192 Jun 11 2017 etc
25165973 drwxr-xr-x. 3 root root 20 Jul 11 2014 home
785 lrwxrwxrwx. 1 root root 7 May 7 2014 lib -> usr/lib
162 lrwxrwxrwx. 1 root root 9 May 7 2014 lib64 -> usr/lib64
167 drwxr-xr-x. 2 root root 6 Mar 13 2014 media
8388761 drwxr-xr-x. 3 root root 21 Jun 11 12:18 mnt
16818322 drwxr-xr-x. 3 root root 15 Jul 11 2014 opt
1 dr-xr-xr-x. 488 root root 0 Jun 11 2017 proc
8388737 dr-xr-x---. 14 root root 4096 Jun 11 12:15 root
8547 drwxr-xr-x. 35 root root 1140 Jun 11 12:32 run
786 lrwxrwxrwx. 1 root root 8 May 7 2014 sbin -> usr/sbin
25165974 drwxr-xr-x. 2 root root 6 Mar 13 2014 srv
1 dr-xr-xr-x. 13 root root 0 Jun 11 2017 sys
16818305 drwxrwxrwt. 22 root root 4096 Jun 11 12:18 tmp
158 drwxr-xr-x. 13 root root 4096 May 7 2014 usr
25165953 drwxr-xr-x. 22 root root 4096 Jun 11 2017 var
[[email protected] Desktop]#
[[email protected] Desktop]# locate passwd
/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
/etc/security/opasswd
/usr/bin/gpasswd
locate -i message 不區分大小寫
find 考試必考,
找一個文件 ,並屬於哪個人,再CP一份到指定的目錄
# find / -name sshd_config
名
# find / -iname ‘*.txt‘
不區分大小寫
# find /etc/ -name ‘*pass*‘
這個文件的路徑中包括pass都找出來
# find / -iname ‘*messages*‘
不區分大小寫
# find /home/student -user student
找屬於student的文件
# find /home/student -group student
這個組有的文件
# find /home/student -gid 1000
按ID去找
# find / -user root -group mail
寫多個條件去查找
# find /home -perm 764 完全匹配權限
按照文件權限模式用-perm選項,按文件權限模式來查找文件的話。。
# find /home -perm -324 擁有者至少有011(-wx),組010(-w-),其他人100(r--)
# find /home -perm /442 擁有者至少有r,或者組成員至少由r,或者其他人至少有w權限
# find /home/student -size 10M 等於10M
# find /home/student -size +10G 大於10G
# find /home/student -size -10k 少於10k
# find / -mmin 120 離修改時間剛好是120分鐘
# find / -mmin +200 已經修改超過200分鐘
# find / -mmin -150 離修改時間少於150分鐘
# find /etc -type d
# find /etc -type l
# find /dev -type b
# find /usr -type f -links +1 查找所有硬鏈接數超過1的文件
把查找到滿足條件的文件進一步處理
# mkdir /tmp/bin
# find /usr/bin -size +50k -exec cp {} /tmp/bin \;
找到並執行cp命令
本文出自 “HCIE_38xx” 博客,謝絕轉載!
RH124-14 文件系統和磁盤設備管理