1.写一个脚本getinterface.sh,脚本可以接受参数(i,I,a),完成以下任务:
(1)使用以下形式:getinterface.sh [-i interface|-I IP|-a]
(2)当用户使用-i选项时,显示其指定网卡的IP地址;
(3)当用户使用-I选项时,显示其后面的IP地址所属的网络接口;
(4)当用户单独使用-a选项时,显示所以网络接口及其IP地址(lo除外);
#!/bin/bash
#
usage() {
echo "Unknown options USAGE:`basename $0` [-i interface|-I IP|-a]"
exit 1
}
while getopts ":i:I:a" SWITCH
do
case $SWITCH in
'i')
INTER=$OPTARG
echo "${INTER}'s IP is:" `ifconfig $INTER | grep "inet" |cut -d: -f2 |cut -d" " -f1`
;;
'I')
IPADD=$OPTARG
echo "${IPADD}'s interface is:" `ifconfig |grep -B 1 "$IPADD" | head -1 | cut -d" " -f1`
;;
'a')
ALL=$OPTARG
echo -e "ALL information except lo is:\n"
ifconfig | grep -v "lo"
;;
\?)
usage
;;
esac
done
shift $[$OPTIND-1]
2.写一个脚本/sbin/datamonitor.sh,要求:
(1)判断/data目录是否存在,且挂载了一个存储设备(通过grep /etc/mtab文件实现);
(2)如果是,则分别显示此设备上总的空间大小和可用空间大小;如果可用空间大小与总空间大小之比低于20%,则以红色显示警告信息;
(3)同时显示总的inode条目的数目和可用inode条目的数目;如果可用可用inode条目的数目与总的inode条目的数目之比低于20%,则以红色显示警告信息;
(4)以root用户的身份设置此脚本每两小时执行一次;
#!/bin/bash
#
if [ -d /data ] && cat /etc/mtab |grep "/data" &>/dev/null ; then
echo "The information on /dev/sda5 are: Size Avail"
MYDEV=`df -h |grep "/dev/sda5" |cut -d" " -f1`
SIZE=`df -h |grep "/dev/sda5" |cut -d" " -f14`
AVAIL=`df -h |grep "/dev/sda5" |cut -d" " -f19`
USED=`df -h |grep "/dev/sda5" |cut -d" " -f22 |cut -d"%" -f1`
echo -e "$MYDEV \t $SIZE \t$AVAIL"
echo "The information on /dev/sda5 are: Inodes IFree"
MYDEV=`df -h |grep "/dev/sda5" |cut -d" " -f1`
INODES=`df -ih |grep "/dev/sda5" |cut -d" " -f16`
IFREE=`df -ih |grep "/dev/sda5" |cut -d" " -f26`
IUSED=`df -ih |grep "/dev/sda5" |cut -d" " -f30 |cut -d"%" -f1`
echo -e "$MYDEV \t $INODES \t $IFREE"
if [ $USED -gt 80 ] ; then
echo -e "\033[31mYou shoud be carefull\033[0m"
fi
if [ $IUSED -gt 80 ] ; then
echo -e "\033[31mYou shoud be carefull\033[0m"
fi
fi
阅读(2117) | 评论(0) | 转发(4) |