您的位置:首页 > 其它

脚本两连发

2014-04-07 18:13 253 查看
脚本一:
通过脚本对新硬盘进行分区

[root@myb362 ~]# cat fdisk.sh
#!/bin/bash
#Version 0.1
#Pragram:对新硬盘进行分区
#Author:Myb
#Data:2014-04-06
echo -e "==========\033[1;31;49m硬盘分区\033[0m=========="
#输出信息
echo "您拥有如下硬盘:”
fdisk -l | grep -o "Disk /dev/[hs]d[a-z]"
#输出硬盘信息
echo -e -n "\033[1;31;49m请输入你要进行分区的硬盘(输入格式:/dev/hda;退出请输入quit):\033[0m"
read Disk
#保存用户输入的信息
# 如果用户输入quit则直接退出脚本!
if [ $Disk == quit ];then
echo "您未选择硬盘!退出成功!"
exit 3
fi
#如果用户输入的硬盘格式不对,则提示用户重新输入!
until fdisk -l > /dev/null | grep -o "Disk /dev/[hs]d[a-z]" | grep "^Disk $Disk$" >/dev/null;do
read -p
"您的输入有误,请重新输入(输入格式:/dev/hda;退出请输入quit):" Disk
#如果用户在此输入了quit则也退出脚本
if [ $Disk == quit ];then
echo "您选择了退出!退出成功!"
exit 4
fi
done
#检测用户输入的硬盘是否已经被挂载,如果已经挂载就执行while循环里的语句!
while mount |grep "$Disk" &>/dev/null;do
#显示硬盘挂载信息
echo "您的硬盘已经被挂载,挂载信息如下:"
mount | grep "$Disk"
#提示用户是否继续操作
echo -e -n "\033[1;31;49m是否要强制卸载$Disk硬盘?(y继续|n退出):\033[0m"
read Umount
#如果用户输入n,则退出脚本!
if [ $Umount == n ];then
echo
"您选择了退出!退出成功!"
exit 4
#如果用户输入y,则强制卸载硬盘
elif [ $Umount == y ];then
echo "正在卸载$Disk,请等待......"
#通过for循环卸载已经挂载的硬盘
for i in `mount |grep "$Disk"|awk '{print $3}'`;do
fuser -km $i >/dev/null
umount $i >/dev/null
echo "卸载$Disk硬盘成功!"
done
#如果用户输入的不是y或者n,则提示用户输入错误,请重新输入
else
read -p "您的输入有误,请重新输入(y继续|n退出):" Umount
fi
done
#提示用户将会格式化硬盘,是否继续
echo -n -e "\033[1;31;49m将会格式化$Disk硬盘,是否继续?(y继续|n退出):\033[0m"
read Choice
#如果用户输入的不是y或者n,就提示用户输入错误,请重新输入
until [ $Choice == y -o $Choice == n ];do
read -p "您的输入有误,请重新输入(y继续|n退出):" Choice
done
#如果用户输入n,就退出脚本!<BR>if [ $Choice == n ];then
echo "您选择了退出!退出成功!"
else
#如果用户输入y,则继续执行!
echo -e "即将对$Disk硬盘进行分区"
sleep 3
#清除硬盘数据
dd if=/dev/zero of=/dev/sdd bs=512 count=1 >/dev/null
sync
echo "格式化$Disk硬盘成功!"
sleep 3
echo "正在对$Disk硬盘进行分区,请等待......"
#对硬盘进行分区
#通过管道将echo的值传给fdisk命令
echo 'n
p
1
+50M
n
p
2
+50M
n
p
3
+100M
t
3
82
w' | fdisk $Disk >/dev/null
#显示分区信息
echo "$Disk硬盘分区成功!硬盘分区信息如下:"
fdisk -l | grep "$Disk"
echo "即将对硬盘分区进行格式化!请等待......"
#格式化分区!
mke2fs -t ext4 ${Disk}1 >/dev/null
echo "${Disk}1分区格式化完成!"
mke2fs -t ext4 ${Disk}2 >/dev/null
echo "${Disk}2分区格式化完成!"
mkswap ${Disk}3 >/dev/null
echo "Swap交换分区创建完成!"
#硬盘分区格式化成功!
echo -e "\033[1;31;49m$Disk硬盘分区格式化完成!\033[0m"
fi
执行结果:



脚本二:
通过ping命令检测某个网段主机是否存活
首先,我是在虚拟机上做的实验,并没有很多主机。那么我们可以先通过一个简单的脚本创建一些虚拟网卡并配上IP。

注意:不要创建太多的虚拟网卡数量,如果数量过多,创建过程会非常的慢;还有ping脚本命令测试之后,你要删除这些虚拟网卡,不然等下次你重新启动虚拟机的时候会非常的慢~~~

执行结果:




这里我没有其他输出信息,使用ifconfig查看,虚拟网卡已经创建成功并且成功启动。接下来就可以进行我们的ping测试了。
ping脚本如下执行结果:



查看/tmp/host_up.log和/tmp/host_down.log






上边的脚本中,有些echo行我是注释掉的,如果取消注释,可以查看更多信息。

总结:这两个脚本在生成环境中还是有一定作用的,尤其是ping命令检测。通过这两个脚本,我们也可以更好的掌握脚本的编写方法。前路漫漫,每一步都不容易。脚踏实地的走好每一步!
本文出自 “Linux步行街” 博客,请务必保留此出处http://mybsir.blog.51cto.com/4618614/1391730
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: