磁盘管理和脚本交互小练习
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了磁盘管理和脚本交互小练习相关的知识,希望对你有一定的参考价值。
1、创建20G的文件系统,块大小2048,文件系统ext4,卷标TEST,要求此分区开机自动挂载至/tetsing目录,且默认挂载属性为acl
2、创建5G文件系统,卷标HUGE,要求此分区开机自动挂载至/mogdata,文件系统类型ext3
3、写一个脚本,完成如下功能:
利用此前学到的if语句完成
(1) 列出当前系统识别的所有磁盘设备
(2) 如果磁盘数量为1,则显示其磁盘空间信息
否则,显示最后一个磁盘上的空间使用信息。
3、写一个脚本,完成如下功能:
利用此前学到的if语句完成
(1) 让用户输入一个磁盘
(2) 存在,则显示其磁盘空间信息
否则,显示Fool.
1、创建20G的文件系统,块大小2048,文件系统ext4,卷标TEST,要求此分区开机自动挂载至/tetsing目录,且默认挂载属性为acl
1、显示所有磁盘块及分区信息 [[email protected] scripts]# fdisk -l /dev/[sh]d[a-z] 2、根据 2610 cylinders 和End 判断能否分区,并确认分区 3、管理分区 [[email protected] scripts]# fdisk /dev/sdb n,p, , +20G, w 4、更新内核识别分区表 [[email protected] scripts]# partx -a /dev/sdb [[email protected] scripts]# partx -a /dev/sdb 5、格式化分区 [[email protected] scripts]# mke2fs -t ext4 -b 2048 -L ‘TEST‘ /dev/sdb2 6、查看默认挂载属性 [[email protected] scripts]# dumpe2fs -h /dev/sdb2 Default mount options: (none) 7、调整默认挂载属性acl [[email protected] scripts]# tune2fs -o acl /dev/sdb2 8、查看默认挂载属性 [[email protected] scripts]# dumpe2fs -h /dev/sdb2 Default mount options: acl ##嘿嘿
2、创建5G文件系统,卷标HUGE,要求此分区开机自动挂载至/mogdata,文件系统类型ext3
1、查看sdb的分区表 [[email protected] scripts]# kpartx -l /dev/sdb sdb1 : 0 20980827 /dev/sdb 63 sdb2 : 0 224910 /dev/sdb 20980890 2、破坏分区表 [[email protected] scripts]# dd if=/dev/zero of=/dev/sdb bs=512 count=1 1+0 records in 1+0 records out 512 bytes (512 B) copied, 0.00428946 s, 119 kB/s [[email protected] scripts]# kpartx -l /dev/sdb [[email protected] scripts]# 3、管理sdb [[email protected] scripts]# fdisk /dev/sdb n,p,1, ,+5G,w 4、让内核重读分区表 [[email protected] scripts]# partx -a /dev/sdb 5、格式化 [[email protected] scripts]# mkfs.ext2 -L ‘HUGE‘ /dev/sdb1 [[email protected] scripts]# tune2fs -O has_journal /dev/sdb1 [[email protected] scripts]# blkid /dev/sdb1 /dev/sdb1: LABEL="HUGE" UUID="1b4a4a93-20a1-439e-b40b-50989cf21fed" SEC_TYPE="ext2" TYPE="ext3" 6、开机挂载至/mogdata 1)创建目录 [[email protected] scripts]# mkdir /mogdata 2)查看是否创建 [[email protected] scripts]# ls -ld /mogdata drwxr-xr-x 2 root root 4096 Aug 10 16:29 /mogdata 3)配置fstab [[email protected] scripts]# vim + /etc/fstab UUID="1b4a4a93-20a1-439e-b40b-50989cf21fed" /mogdata ext4 defaults,sync,noatime,nosuid 2 3 2:隔一天备份 3:检测次序
3、写一个脚本,完成如下功能:
利用此前学到的if语句完成
(1) 列出当前系统识别的所有磁盘设备
(2) 如果磁盘数量为1,则显示其磁盘空间信息
否则,显示最后一个磁盘上的空间使用信息。
1、写脚本 [[email protected] scripts]# vim test1.sh #!/bin/bash # Version: 0.0.2 # Author: Lcc.org # Desc: 利用此前学到的if语句完成 (1) 列出当前系统识别的所有磁盘设备(2) 如果磁盘数量为1,则显示其磁盘空间信息 否则,显示最后一个磁盘上的空间使用信息。 # bash弱类型:不用定义,直接赋值.默认为字符型.参与运算隐式转换 diskfile=`ls /dev/[sh]d[a-z]` COUNT=$(ls /dev/[sh]d[a-z] | wc -l) #数值判断: -eq,-ne,-lt,-le,-gt,-ge if [ $COUNT -eq 1 ] then #显示指定设备的状态信息 fdisk -l $diskfile #自定义状态返回值:在bash脚本中,一旦遇到exit命令就会终止脚本,退出状态码为exit后的数值。 exit 0 else #以空白分割,由-n 后#指定的字段作为每行字段的数量 fdisk -l `echo $diskfile | xargs -n1 | tail -1` exit 0 fi 2、测试语法(没有信息就是最好的信息) [[email protected] scripts]# bash -n test1.sh 3、给予执行权限 [[email protected] scripts]# chmod a+x test1.sh 4、确认执行结果 [[email protected] scripts]# ls -ld test1.sh -rwxr-xr-x 1 root root 450 Aug 10 16:44 test1.sh 5、运行脚本(显示的为最后一个) [[email protected] scripts]# ./test1.sh Disk /dev/sdb: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xf6885d69 Device Boot Start End Blocks Id System /dev/sdb1 1 654 5253223+ 83 Linux
3、写一个脚本,完成如下功能:
利用此前学到的if语句完成
(1) 让用户输入一个磁盘
(2) 存在,则显示其磁盘空间信息
否则,显示Fool.
1、写脚本 [[email protected] scripts]# cat test2.sh #!/bin/bash # Version: 0.0.3 # Author: Lcc.org # Desc:................. read -t 5 -p ‘Enter a special file: ‘ diskfile [ ! -n "$diskfile" ] && echo "あなたははしごそれを取る方法を知っていますか?" && exit 1 if fdisk -l | fgrep "Disk $diskfile" &> /dev/null then fdisk -l $diskfile exit 0 else echo "Vitis vinifera L." exit 250 fi 2、运行 1)给空白 [[email protected] scripts]# bash test2.sh Enter a special file: あなたははしごそれを取る方法を知っていますか? 2)不空白,非设备 [[email protected] scripts]# bash test2.sh Enter a special file: lala Vitis vinifera L. 3)不空白,设备 [[email protected] scripts]# bash test2.sh Enter a special file: /dev/sdb Disk /dev/sdb: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xf6885d69 Device Boot Start End Blocks Id System /dev/sdb1 1 654 5253223+ 83 Linux
本文出自 “Reading” 博客,请务必保留此出处http://sonlich.blog.51cto.com/12825953/1955194
以上是关于磁盘管理和脚本交互小练习的主要内容,如果未能解决你的问题,请参考以下文章