#网卡和IP
#!/bin/bash
ip add |awk -F ": " '$1 ~ "^[0-9]" {print $2}' > /tmp/ifs.txt
get_ip()
{
ip add show dev $1 |grep inet |awk '{print $2}' | awk -F '/' '{print $1}'
}
for eth in `cat /tmp/ifs.txt`
do
myip=`get_ip $eth`
if [ -z "$myip" ]
then
etho $eth
else
echo $eth $myip
fi
done > /tmp/if_ip.txt
if [ $# -ne 2 ]
then
echo "请输入正确格式: bash $0 -i 网卡 或 bash $0 -I IP"
fi
if [ $1 == "-i" ]
then
if awk '{print $1}' /tmp/if_ip.txt|grep -qw $2
then
ip1=`awk -v aeth=$2 '$1==aeth ' /tmp/if_ip.txt|sed "s/$eth //"`
echo "网卡$1的IP是 $ip1"
else
echo "你指定的网卡不对,系统中的网卡前:`cat /tmp/ifs.txt|xargs`"
fi
elif [ $1 == "-I" ]
then
if grep -qw "$2" /tmp/if_ip.txt
then
eth=`grep -w " $2 " /tmp/if_ip.txt|awk '{print $1}'`
echo "IP $2 对应的网卡是 $eth"
else
echo "你指定的IP不对,系统中的IP有:`ip add |grep inet |awk '{print $2}'|awk -F '/' '{print $1}'`| xargs"
fi
else
echo "清输入正确的格式:bash $0 -i 网卡 或 bash $0 -I IP"
fi
#随机三位数
#!/bin/bash
get_number()
{
for i in `seq 0 2`
do
a[$i]=$[$RANDOM%10]
done
echo ${a[@]}|sed s'/ //g'
}
if [ $# -eq 0 ]
then
get_number
elif [ $# -eq 1 ]
then
n=`echo $1|sed 's/[0-9]//g'`
if [ -n "$n" ]
then
echo "给定的参数必须是一个数字"
exit
fi
for i in `seq 1 $1`
do
get_number
done |xargs
else
echo "格式不对, 正确格式是 sh $0 [n]"
fi
#是否是安装包
#!/bin/bash
if_install()
{
rpm -q $1 >/dev/null 2>/dev/null
if [ $? -eq 0 ]
then
echo "$1已经安装"
return 0
else
echo "$1没有安装"
return 1
fi
}
if_install httpd
if [ $? -eq 0 ]
then
if ! pgrep httpd >/dev/null
then
service httpd start
fi
else
yum install -y httpd
fi
if_install mysql-server
if [ $? -eq 0 ]
then
if ! pgrep mysqld >/dev/null
then
service mysqld start
fi
else
yum install -y mysql-server
fi
#判断日期是否合法
#!/bin/bash
if [ $# -ne 1 ] || [ ${#1} -ne 8 ]
then
echo "请输入正确格式:sh $0 yyyymmdd"
exit 1
fi
y=`echo ${1:0:4}`
m=`echo ${1:4:2}`
d=`echo ${1:6:2}`
if echo $d|grep -q "^0"
then
d=`echo ${1:6:2}|sed 's/^0//'`
fi
if cal $m $y >/dev/null 2>/dev/null
then
if ! cal $m $y |grep -qw "$d"
then
echo "你给的日期不是合法的"
else
echo "日期合法"
fi
else
echo "你给的日期不合法"
fi
#监控网卡
#!/bin/bash
LANG=en
sar -n DEV 1 10 |grep -w "$1" > /tmp/sar.tmp
in=`grep "Average:" /tmp/sar.tmp|awk '{print $5}'|sed 's/\.//'`
out=`grep "Average:" /tmp/sar.tmp|awk '{print $6}'|sed 's/\.//'`
if [ $in == "00" ] && [ $out == "00" ]
then
ifdown $1
ifup $1
fi
SHELL训练营--day21_shell练习46-50
猜你喜欢
转载自blog.51cto.com/sincethen/2343159
今日推荐
周排行