Shell脚本编程之--硬盘分区管理
2014-06-10 14:22
148 查看
本文目的为介绍Linux下硬盘分区的编程技巧,重点分析控制流结构的使用和命令在shell脚本编程里的组合使用:
1、要做硬盘分区,首先需呀先了解系统究竟有多少块硬盘可用,具体方法如下:
用 fdisk -l 查看系统硬盘的个数和分区情况,然后找出硬盘设备列举出来
上面列出了硬盘设备和每个硬盘的分区情况,然后要做的就是从中找出Linux的硬盘设备,有下列方法
fdisk -l 2> /dev/null | grep -o "Disk /dev/[sh]d[a-z]" 或者 fdisk -l 2> /dev/null | grep "Disk /dev/[sh]d[a-z]" | awk '{print $1}'即可列出如下磁盘设备
做到这里大多数人都能够完成一半了
2、要知道如何分区,这也是用shell控制硬盘分区的重要工作,下面大家来看下这段代码:
3、但是到这里还不行,进行分区之前还的对磁盘进行格式化,删除磁盘上面的所有分区,命令很简单,用dd 就可以完成,命令如下
dd if=/dev/zero of=/dev/sdb bs=512 count=1
命令实现方法为把分区列表清除完成删除分区的功能
4、到这里就可以组织语言进行编写了下面给出我写的范例
最后,仅以此文献给Linux的爱好者,希望能给你们学习shell编程带来帮助。
本文出自 “SilenceWolf” 博客,请务必保留此出处http://silencewolf.blog.51cto.com/5009737/1424536
1、要做硬盘分区,首先需呀先了解系统究竟有多少块硬盘可用,具体方法如下:
用 fdisk -l 查看系统硬盘的个数和分区情况,然后找出硬盘设备列举出来
fdisk -l 2> /dev/null | grep -o "Disk /dev/[sh]d[a-z]" 或者 fdisk -l 2> /dev/null | grep "Disk /dev/[sh]d[a-z]" | awk '{print $1}'即可列出如下磁盘设备
做到这里大多数人都能够完成一半了
2、要知道如何分区,这也是用shell控制硬盘分区的重要工作,下面大家来看下这段代码:
#!/bin/bash # echo 'n p 1 +120M n p 2 +512M n p 3 +128M t 3 82 w' | fdisk /dev/sdb这段代码的功能很简单,就是用规定好的数据通过管道传递给fdisk命令让其逐行读取执行,实现用规定数据对硬盘分区,到了这里相信很多人都能知道怎么在shell脚本里控制分区了。
3、但是到这里还不行,进行分区之前还的对磁盘进行格式化,删除磁盘上面的所有分区,命令很简单,用dd 就可以完成,命令如下
dd if=/dev/zero of=/dev/sdb bs=512 count=1
命令实现方法为把分区列表清除完成删除分区的功能
4、到这里就可以组织语言进行编写了下面给出我写的范例
#!/bin/bash # echo "Initial a disk..." echo -e "\033[31mWarning: Then operation may damage the disk data.\033[0m" read -p "Are you sure?(y/n)" SURE if [ $SURE == 'n' ];then echo "quit" exit 7 fi fdisk -l 2> /dev/null | grep -o "Disk /dev/[sh]d[a-z]" read -p "Your choice:" PARTDISK if [ $PARTDISK == 'quit' ];then echo "quit" exit 6 fi until fdisk -l 2> /dev/null | grep -o "Disk /dev/[sh]d[a-z]" | grep "Disk $PARTDISK" &> /dev/null;do read -p "Wrong option,You choice again:" PARTDISK done read -p "Will destroy all data,continue?(y/n)" CHOICE until [ $CHOICE == 'y' -o $CHOICE == 'n' ];do read -p "Wrong choice,again your choice.(y/n)" CHOICE done if [ $CHOICE == 'n' ];then echo "quit" exit 9 else echo "Start partition your disk...." for I in `mount | grep "${PARTDISK}[1-9]"`;do fuser -km $I umount $I echo "$I umount finish.." done dd if=/dev/zero of=$PARTDISK bs=512 count=1 &> /dev/null sync sleep 3 echo 'n p 1 +120M n p 2 +512M n p 3 +128M t 3 82 w' | fdisk $PARTDISK &> /dev/null partprobe $PARTDISK sync sleep 3 mke2fs -j ${PARTDISK}1 &> /dev/null echo "partition ${PARTDISK}1 ok" mke2fs -j ${PARTDISK}2 &> /dev/null echo "partition ${PARTDISK}2 ok" mkswap ${PARTDISK}3 &> /dev/null echo "partition ${PARTDISK}3 ok" fi上面代码给出了磁盘分区的具体数值,可以灵活运用。还要注意一点,在对磁盘进行分区格式化之前,一定要确定没有用户正在访问该磁盘(即做dd之前要先卸载挂载的磁盘),上面脚本已给出了,有兴趣的可以具体分析下怎么实现的。
最后,仅以此文献给Linux的爱好者,希望能给你们学习shell编程带来帮助。
本文出自 “SilenceWolf” 博客,请务必保留此出处http://silencewolf.blog.51cto.com/5009737/1424536
相关文章推荐
- Linux下Shell脚本编程简介
- 脚本文件(shell perl python)编程的总结的框架。
- Shell脚本编程基础
- Shell脚本编程的常识
- Linux脚本(shell)编程(二) 基本语法
- LPI 102 考试准备,主题 109: Shell、脚本、编程和编译
- Linux脚本(shell)编程(六) 循环
- Linux命令行和Shell脚本编程
- shell下打印菱形(一起熟悉shell脚本编程)
- Linux脚本(shell)编程(四) 判断条件
- Shell脚本编程-变量
- Linux下Shell脚本编程简介
- 一个比较好的shell脚本编程入门文章
- Shell脚本编程基础
- Linux Bash Shell学习(七):shell编程基础——运行Shell脚本、function
- 介绍一个不错的shell脚本编程学习网站给大家
- Shell脚本编程-流控制(二)
- 顶嵌学员学习笔记:Shell脚本编程总结
- linux脚本(shell)编程
- Linux脚本(shell)编程(五) if 条件判断