N25第8周作业

1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;
     在线的主机使用绿色显示;

     不在线的主使用红色显示;

#!/bin/bash
ipnet=172.20.51.
trap 'trap_action' INT
trap_action() {
break
return 1
}

for ((i=1;i<=50;i++));do
        ping -c 1 -W 1 ${ipnet}${i} &> /dev/null && echo -en "\033[32m ${ipnet}${i} \033[0m\n" || echo -en "\033[31m ${ipnet}${i} \033[0m\n"
done

2、如何给网络接口配置多个地址,有哪些方式?

]# ip addr add 172.20.219.51/24 label eth0:2 dev eth0
]# ifconfig eth0:1 172.20.219.51 netmask 255.255.255.0 up

3、写一个脚本,完成以下功能
   (1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;
   (2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;
   (3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;

   (4) 分别统计S开头和K开头的文件各有多少;

#!/bin/bash
s=0
k=0
for i in `ls /etc/rc.d/rc3.d/*`;do
        case $i in
        /etc/rc.d/rc3.d/S*)
                echo ${i##*/}stop && let s++;;
        /etc/rc.d/rc3.d/K*)
                echo ${i##*/}start && let k++;;
        esac
done
echo -en "以K开头的文件个数为:${k}\n"
echo -en "以S开头的文件个数为:${s}\n"

4、写一个脚本,完成以下功能
   (1) 脚本能接受用户名作为参数;

   (2) 计算此些用户的ID之和;

#!/bin/bash
sum=0
declare -a userid
for i in $(seq 1 $#);do
        userid[$i]=$(id -u $1 2>/dev/null)
                if [ -z ${userid[$i]} ];then
                        echo -en "$1不存在\n"
                        shift
                else
                        let sum+=${userid[$i]}
                        shift
                fi
done
echo -en "用户id之和为:${sum}\n"

5、写一个脚本
   (1) 传递一些目录给此脚本;
   (2) 逐个显示每个目录的所有一级文件或子目录的内容类型;

   (3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;

#!/bin/bashsumdir=0sumfile=0trap 'trap_action' INTtrap_action() {echo -en "总共包含的目录数:${sumdir}\n"echo -en "总共显示的文件数:${sumfile}\n"exit 2}f_type() {local jlocal j_pathif [ ! -d $1 ];then    echo -en "${1}该参数不是目录!\n"    shift    continueelse    for j in $(ls $1);do        j_path=${1}/${j}        [ -d $j_path ] && let sumdir++ && f_type $j_path        [ -f $j_path ] && let sumfile++        file $j_path     donefi}for i in $(seq 1 $#);do    f_type $1    shiftdoneecho -en "总共包含的目录数:${sumdir}\n"echo -en "总共显示的文件数:${sumfile}\n"

6、写一个脚本
  通过命令行传递一个参数给脚本,参数为用户名

  如果用户的id号大于等于500,则显示此用户为普通用户;

#!/bin/bash
for i in $(seq 1 $#);do
        userid[$i]=$(id -u $1 2>/dev/null)
                if [ -z ${userid[$i]} ];then
                        echo -en "${1}该用户不存在!\n" && shift && continue
                elif [ ${userid[$i]} -lt 500 ];then
                        echo -en "${1}该用户为系统用户\n" && shift && continue
                else
                        echo -en "${1}该用户为普通用户\n" && shift
                fi
done

7、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;

#!/bin/bash
netip=172.16.250.
trap 'trap_action' INT
trap_action () {
break
return 2
}

for ((i=20;i<=100;i++));do
        ping -c 1 -W 1 ${netip}$i &> /dev/null && echo ${netip}$i
done

8、打印九九乘法表;

#!/bin/bash
for i in {1..9};do
        for j in $(seq 1 $i);do
                echo -en "${j}x${i}=$[$j*$i]\t"
        done
        echo
done

原创文章,作者:N25_Nva,如若转载,请注明出处:http://www.178linux.com/69781

(0)
N25_NvaN25_Nva
上一篇 2017-02-22
下一篇 2017-02-22

相关推荐

  • 8-4 作业

    1.用正则表达式表示IP地址 2.用正则表达式表示手机号11 13 17 15  18 3.用正则表达式表示身份证号18   4.用正则表达式表示邮箱  

    Linux干货 2016-08-08
  • SQL优化大全

    1. 优化SQL步骤 1. 通过 show status和应用特点了解各种 SQL的执行频率        通过 SHOW STATUS 可以提供服务器状态信息,也可以使用 mysqladmin extende d-status 命令获得。 SHOW STATUS 可以根据需要显示 session 级别的统计结果和 g…

    Linux干货 2015-04-13
  • 关于大型网站技术演进的思考(九)–网站静态化处理–总述(1)

    原文出处: 夏天的森林    在存储瓶颈的开篇我提到像hao123这样的导航网站只要它部署的web服务器数量足够,它可以承载超大规模的并发访问量,如果是一个动态的网站,特别是使用到了数据库的网站是很难做到通过增加web服务器数量的方式来有效的增加网站并发访问能力的。但是现实情况是像淘宝、京东这样的大型动态网站在承担高并发的情况下…

    Linux干货 2015-03-11
  • Cacti整合Zabbix监控

    前言: 由于公司现在很多业务都是使用cacti进行监控流量的,并且还有一些使用zabbix监控的项目,正好又有一个项目需要搭建Cacti+Zabbix进行综合监控,搭建完毕之后发现,Cacti较之以前有了不小的改进,所以就来写一写Cacti和Zabbix监控整合的文章,顺便说一下Cacti下的一些好用的插件。 环境: Centos 6.4 X86_64 Ca…

    Linux干货 2015-03-19

评论列表(1条)

  • 马哥教育
    马哥教育 2017-03-30 14:04

    测试了部分脚本代码,功能都没有问题,但是还是希望今后可以把执行结果在文章中直观展示出来,继续 加油。