首页 > 代码库 > RH124-14 文件系统和磁盘设备管理
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 \;
=========================================================================================
[root@localhost 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
[root@localhost 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
[root@localhost Desktop]#
[root@localhost 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 文件系统和磁盘设备管理