文件系統掛載
文件系統管理:
將額外文件系統與根文件系統某現存的目錄建立起關聯關系,進而使得此目錄做為其它文件訪問入口的行為稱之為掛載;
解除此關聯關系的過程稱之為卸載;
把設備關聯掛載點:Mount Point
mount
卸載時:可使用設備,也可以使用掛載點
umount
注意:掛載點下原有文件在掛載完成后會被臨時隱藏;
掛載方法:mount DEVICE MOUNT_POINT
mount:通過查看/etc/mtab文件顯示當前系統已掛載的所有設備
mount [-fnrsvw] [-t vfstype] [-o options] device dir
device:指明要掛載的設備;
(1) 設備文件:例如/dev/sda5
(2) 卷標:-L ‘LABEL’, 例如 -L ‘MYDATA’
(3) UUID, -U ‘UUID’:例如 -U ‘0c50523c-43f1-45e7-85c0-a126711d406e’
(4) 偽文件系統名稱:proc, sysfs, devtmpfs, configfs
dir:掛載點
事先存在;建議使用空目錄;
進程正在使用中的設備無法被卸載;
常用命令選項:
-t vsftype:指定要掛載的設備上的文件系統類型;
-r: readonly,只讀掛載;
-w: read and write, 讀寫掛載;
-n: 不更新/etc/mtab;
-a:自動掛載所有支持自動掛載的設備;(定義在了/etc/fstab文件中,且掛載選項中有“自動掛載”功能)
-L ‘LABEL’: 以卷標指定掛載設備;
-U ‘UUID’: 以UUID指定要掛載的設備;
-B, –bind: 綁定目錄到另一個目錄上;
注意:查看內核追蹤到的已掛載的所有設備:cat /proc/mounts
-o options:(掛載文件系統的選項)
async:異步模式;
sync:同步模式;
atime/noatime:包含目錄和文件;
diratime/nodiratime:目錄的訪問時間戳
auto/noauto:是否支持自動掛載
exec/noexec:是否支持將文件系統上應用程序運行為進程
dev/nodev:是否支持在此文件系統上使用設備文件;
suid/nosuid:
remount:重新掛載
ro:
rw:
user/nouser:是否允許普通用戶掛載此設備
acl:啟用此文件系統上的acl功能
注意:上述選項可多個同時使用,彼此使用逗號分隔;
默認掛載選項:defaults
rw, suid, dev, exec, auto, nouser, and async
卸載命令:
# umount DEVICE
# umount MOUNT_POINT
查看正在訪問指定文件系統的進程:
# fuser -v MOUNT_POINT
終止所有在正訪問指定的文件系統的進程:
# fuser -km MOUNT_POINT
掛載交換分區:
啟用:swapon
swapon [OPTION]… [DEVICE]
-a:激活所有的交換分區;
-p PRIORITY:指定優先級;
禁用:swapoff [OPTION]… [DEVICE]
內存空間使用狀態:
free [OPTION]
-m: 以MB為單位
-g: 以GB為單位
文件系統空間占用等信息的查看工具:
df:
-h: human-readable
-i:inodes instead of blocks
-P: 以Posix兼容的格式輸出;
查看某目錄總體空間占用狀態:
du:
du [OPTION]… DIR
-h: human-readable
-s: summary
命令總結:mount, umount, free, df, du, swapon, swapoff, fuser
文件掛載的配置文件:/etc/fstab
每行定義一個要掛載的文件系統;
要掛載的設備或偽文件系統 掛載點 文件系統類型 掛載選項 轉儲頻率 自檢次序
要掛載的設備或偽文件系統:
設備文件、LABEL(LABEL=””)、UUID(UUID=””)、偽文件系統名稱(proc, sysfs)
掛載選項:
defaults
轉儲頻率:
0:不做備份
1:每天轉儲
2:每隔一天轉儲
自檢次序:
0:不自檢
1:首先自檢;一般只有rootfs才用1;
…
文件系統上的其它概念:
Inode: Index Node, 索引節點
地址指針:
直接指針:
間接指針:
三級指針:
inode bitmap:對位標識每個inode空閑與否的狀態信息;
鏈接文件:
硬鏈接:
不能夠對目錄進行;
不能跨分區進行;
指向同一個inode的多個不同路徑;創建文件的硬鏈接即為為inode創建新的引用路徑,因此會增加其引用計數;
符號鏈接:
可以對目錄進行;
可以跨分區;
指向的是另一個文件的路徑;其大小為指向的路徑字符串的長度;不增加或減少目標文件inode的引用計數;
ln [-sv] SRC DEST
-s:symbolic link
-v: verbose
例一:給文件設置硬鏈接
[root@localhost ~]# ln fstab fstab.hl
例二:創建軟鏈接
[root@localhost ~]# ln -s fstab fstab.sl [root@localhost ~]# ll -i 總用量 20 100663405 -rw-r--r--. 1 root root 0 5月 5 12:05 123 100663409 -rw-r--r--. 1 root root 0 5月 5 12:10 123.txt 100663408 -rw-r--r--. 1 root root 0 5月 5 11:44 201911111111.11 100663407 drwxr-xr-x. 2 root root 17 5月 5 14:42 34 100663363 -rw-------. 1 root root 1261 5月 5 06:31 anaconda-ks.cfg 33611768 drwxr-xr-x. 2 root root 6 5月 5 18:55 ddd 100699875 -rw-r--r--. 2 root root 617 5月 16 08:58 fstab 100699875 -rw-r--r--. 2 root root 617 5月 16 08:58 fstab.hl 100699893 lrwxrwxrwx. 1 root root 5 5月 16 09:05 fstab.sl -> fstab 100699876 -rw-r--r--. 1 root root 48 5月 6 13:01 grep.txt 100699877 -rw-r--r--. 1 root root 138 5月 6 16:57 ls.txt 705 drwxr-xr-x. 2 root root 6 5月 5 12:10 rrr [root@localhost ~]# rm fstab rm:是否刪除普通文件 "fstab"?y [root@localhost ~]# ll 總用量 16 -rw-r--r--. 1 root root 0 5月 5 12:05 123 -rw-r--r--. 1 root root 0 5月 5 12:10 123.txt -rw-r--r--. 1 root root 0 5月 5 11:44 201911111111.11 drwxr-xr-x. 2 root root 17 5月 5 14:42 34 -rw-------. 1 root root 1261 5月 5 06:31 anaconda-ks.cfg drwxr-xr-x. 2 root root 6 5月 5 18:55 ddd -rw-r--r--. 1 root root 617 5月 16 08:58 fstab.hl lrwxrwxrwx. 1 root root 5 5月 16 09:05 fstab.sl -> fstab -rw-r--r--. 1 root root 48 5月 6 13:01 grep.txt -rw-r--r--. 1 root root 138 5月 6 16:57 ls.txt drwxr-xr-x. 2 root root 6 5月 5 12:10 rrr
文件管理操作對文件的影響:
文件刪除:rm
文件復制:cp
文件移動:mv
例一:掛載文件,創建新的目錄
[root@localhost ~]# mkdir /mydata [root@localhost ~]# mount /dev/sdb /mydata/ [root@localhost ~]# mount sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=488984k,nr_inodes=122246,mode=755) securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755) tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755) cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd) pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime) cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_prio,net_cls) cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu) cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids) cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio) cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset) cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb) cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer) cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices) cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event) cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory) configfs on /sys/kernel/config type configfs (rw,relatime) /dev/mapper/cl-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota) selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime) systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=35,pgrp=1,timeout=300,minproto=5,maxproto=5,direct) debugfs on /sys/kernel/debug type debugfs (rw,relatime) hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel) mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel) /dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota) /dev/mapper/cl-home on /home type xfs (rw,relatime,seclabel,attr2,inode64,noquota) tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=99996k,mode=700) /dev/sdb on /mydata type ext2 (rw,relatime,seclabel)
例二:指定要掛載的設備上的文件系統類型
[root@localhost ~]# mount -t ext2 /dev/sdb /mydata [root@localhost ~]# mount
例三:卸載站點
[root@localhost ~]# umount /dev/sdb [root@localhost ~]# mout -bash: mout: 未找到命令 [root@localhost ~]# mount sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=488984k,nr_inodes=122246,mode=755) securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755) tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755) cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=sr/lib/systemd/systemd-cgroups-agent,name=systemd) pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime) cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_prio,necls) cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu) cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids) cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio) cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset) cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb) cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer) cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices) cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event) cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory) configfs on /sys/kernel/config type configfs (rw,relatime) /dev/mapper/cl-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota) selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime) systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=35,pgrp=1,timeout=300,minproto=5axproto=5,direct) debugfs on /sys/kernel/debug type debugfs (rw,relatime) hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel) mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel) /dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota) /dev/mapper/cl-home on /home type xfs (rw,relatime,seclabel,attr2,inode64,noquota) tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=99996k,mode=700)
文件掛載的配置文件:/etc/fstab
每行定義一個要掛載的文件系統;
要掛載的設備或偽文件系統 掛載點 文件系統類型 掛載選項 轉儲頻率 自檢次序
要掛載的設備或偽文件系統:
設備文件、LABEL(LABEL=””)、UUID(UUID=””)、偽文件系統名稱(proc, sysfs)
掛載選項:
defaults
轉儲頻率:
0:不做備份
1:每天轉儲
2:每隔一天轉儲
自檢次序:
0:不自檢
1:首先自檢;一般只有rootfs才用
例一:掛載文件,自啟動 …
[root@localhost ~]# vim /etc/fstab /dev/sdb /mydata ext4 defaults 0 0 [root@localhost ~]# mount -a [root@localhost ~]# mount /dev/mapper/cl-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota) selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime) systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=26,pgrp=1,timeout=300,minproto=5,maxproto=5,direct) hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel) mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel) debugfs on /sys/kernel/debug type debugfs (rw,relatime) /dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota) /dev/mapper/cl-home on /home type xfs (rw,relatime,seclabel,attr2,inode64,noquota) tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=99996k,mode=700) /dev/sdb on /mydata type ext4 (rw,relatime,secla
bash腳本編程之用戶交互:
read [option]… [name …]
-p ‘PROMPT’
-t TIMEOUT
bash -n /path/to/some_script
檢測腳本中的語法錯誤
例一:檢測命令語法
[root@localhost bin]# vim read.sh [root@localhost bin]# bash -n read.sh
bash -x /path/to/some_script
調試執行
例一:命令執行過程
[root@localhost bin]# bash -x read.sh + read -p 'Enter a disk special file:' diskfile Enter a disk special file: /dev/sda + '[' -z /dev/sda ']' + fdisk -l + grep '^Disk /dev/sda' + echo 'Wrong disk special file.' Wrong disk special file. + exit 2
原創文章,作者:kang,如若轉載,請注明出處:http://www.www58058.com/75922