首页 > 代码库 > 磁盘管理和脚本交互小练习
磁盘管理和脚本交互小练习
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、显示所有磁盘块及分区信息 [root@localhost scripts]# fdisk -l /dev/[sh]d[a-z] 2、根据 2610 cylinders 和End 判断能否分区,并确认分区 3、管理分区 [root@localhost scripts]# fdisk /dev/sdb n,p, , +20G, w 4、更新内核识别分区表 [root@localhost scripts]# partx -a /dev/sdb [root@localhost scripts]# partx -a /dev/sdb 5、格式化分区 [root@localhost scripts]# mke2fs -t ext4 -b 2048 -L ‘TEST‘ /dev/sdb2 6、查看默认挂载属性 [root@localhost scripts]# dumpe2fs -h /dev/sdb2 Default mount options: (none) 7、调整默认挂载属性acl [root@localhost scripts]# tune2fs -o acl /dev/sdb2 8、查看默认挂载属性 [root@localhost scripts]# dumpe2fs -h /dev/sdb2 Default mount options: acl ##嘿嘿
2、创建5G文件系统,卷标HUGE,要求此分区开机自动挂载至/mogdata,文件系统类型ext3
1、查看sdb的分区表 [root@localhost scripts]# kpartx -l /dev/sdb sdb1 : 0 20980827 /dev/sdb 63 sdb2 : 0 224910 /dev/sdb 20980890 2、破坏分区表 [root@localhost 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 [root@localhost scripts]# kpartx -l /dev/sdb [root@localhost scripts]# 3、管理sdb [root@localhost scripts]# fdisk /dev/sdb n,p,1, ,+5G,w 4、让内核重读分区表 [root@localhost scripts]# partx -a /dev/sdb 5、格式化 [root@localhost scripts]# mkfs.ext2 -L ‘HUGE‘ /dev/sdb1 [root@localhost scripts]# tune2fs -O has_journal /dev/sdb1 [root@localhost scripts]# blkid /dev/sdb1 /dev/sdb1: LABEL="HUGE" UUID="1b4a4a93-20a1-439e-b40b-50989cf21fed" SEC_TYPE="ext2" TYPE="ext3" 6、开机挂载至/mogdata 1)创建目录 [root@localhost scripts]# mkdir /mogdata 2)查看是否创建 [root@localhost scripts]# ls -ld /mogdata drwxr-xr-x 2 root root 4096 Aug 10 16:29 /mogdata 3)配置fstab [root@localhost 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、写脚本 [root@localhost 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、测试语法(没有信息就是最好的信息) [root@localhost scripts]# bash -n test1.sh 3、给予执行权限 [root@localhost scripts]# chmod a+x test1.sh 4、确认执行结果 [root@localhost scripts]# ls -ld test1.sh -rwxr-xr-x 1 root root 450 Aug 10 16:44 test1.sh 5、运行脚本(显示的为最后一个) [root@localhost 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、写脚本 [root@localhost 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)给空白 [root@localhost scripts]# bash test2.sh Enter a special file: あなたははしごそれを取る方法を知っていますか? 2)不空白,非设备 [root@localhost scripts]# bash test2.sh Enter a special file: lala Vitis vinifera L. 3)不空白,设备 [root@localhost 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
磁盘管理和脚本交互小练习
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。