January 23 2018
Weather: cloudy to overcast !
1、需求:
我们使用的云主机,购买一块云盘后,默认并不是挂载状态的,用shell写一个脚本,只要把盘符和挂载点以参数的形式提供给脚本,该脚本就可以自动格式化、挂载。
要求:
- 不用分区,直接格式化
- 格式化为ext4文件系统类型
[aming@Dasoncheng ~]$ cat a.sh
#!/bin/bash
echo "Useage $0 panfu guazaidian for example : $0 /dev/sdf /data"
if [ $# -ne 2 ];
then
exit
fi
if [ ! -b $1 ];
then
echo "Plese input a valid device !"
exit 1
fi
mkfs -t ext4 $1
if [ ! -d $2 ];
then
mkdir -p $2
fi
n=`grep "$2" /etc/fstab |wc -c`
if [ $n -eq 0 ];
then
echo "$1 $2 ext4 defaults 0 0" >> /etc/fstab
mount -a
else
mount $1 $2
echo "The $2 exist in /etc/fstab , plese try again !"
fi
[aming@Dasoncheng ~]$ mount |grep sdb
/dev/sdb on /mnt type ext4 (rw,relatime,data=ordered)
2、需求:
写一个shell脚本,把192.168.0.0/24网段在线的ip列出来。
思路:for循环,0.1-0.254依次去ping,能通说明在线。
[aming@Dasoncheng ~]$ cat b.sh
#!/bin/bash
ip=192.168.60.
for i in `seq 1 20` ;
do
ping -c 2 $ip$i &>/dev/null
if [ $? == 0 ];
then
echo "The $ip$i is online;"
fi
done
参考答案:
1、
#!/bin/bash
echo "Useage $0 盘符 挂载点, 如: $0 /dev/xvdb /data"
if [ $# -ne 2 ]
then
exit
fi
if [ ! -b $1 ]
then
echo "你提供的盘符不正确,请检查后再操作"
exit 1
fi
mkfs -t ext4 $1
if [ ! -d $2 ] ;then
mkdir -p $2
fi
n=`egrep " $2 " /etc/fstab|wc -l`
if [ $n -eq 0 ]
then
echo "$1 $2 ext4 defaults 0 0" >> /etc/fstab
mount -a
else
mount $1 $2
echo "配置文件/etc/fstab中已经存在挂载点$2,请检查一下."
fi
2、
#!/bin/bash
ips="192.168.1."
for i in `seq 1 254`
do
ping -c 2 $ips$i >/dev/null 2>/dev/null
if [ $? == 0 ]
then
echo "echo $ips$i is online"
else
echo "echo $ips$i is not online"
fi
done