N25-第八周作业

第八周

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

#!/bin/bash
#

ip=172.16.250.

for i in {1..254}; do
    if ping -w 1 -c 1 $ip$i &> /dev/null; then
        echo -e  "\033[32m $ip$i is up \033[0m" 
    else echo -e "\033[31m $ip$i is down \033[0m"
    fi  
done

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

(1)ip addr add IFADDR dev IFACE
    [root@zf ~]# ip addr add 20.2.1.10 dev eth1
(2)ifcofig IFACE_LABEL IPADDR/NAETMASK
    [root@zf ~]# ifconfig eth1:0 20.3.1.10/24   
(3)修改/etc/sysconfig/network-scripts/ifcfg-ethX:X文件
    [root@zf ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1:3 
        DEVICE=eth1:3
        HWADDR=00:0C:29:33:84:65
        TYPE=Ethernet
        ONBOOT=no
        NM_CONTROLLED=yes
        IPADDR=20.4.1.10
        PREFIX=24
        BOOTPROTO=static

3、写一个脚本,完成以下功能 

 (1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;

 (2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;

 (3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串; 

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

#!/bin/bash
#
ssum=0
ksum=0

for i in $(ls /etc/rc.d/rc3.d); do
        if [ $(echo "$i" | grep -o "^S*") == "S" ];then
                echo "start_$i" 
                let ssum++
        elif [ $(echo "$i" | cut -c 1-1) == "K" ];then
                echo "stop_$i"
                let ksum++
        fi
done
        echo -e "S head file is $ssum.\nK head file is $ksum."

4、写一个脚本,完成以下功能

 (1) 脚本能接受用户名作为参数;

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

#!/bin/bash
#
sum=0

for i in $*; do
        if id -u $i &> /dev/null; then
                let sum+=$(id -u $i)
        else echo "user not existed."
                exit 2
        fi 
done 
        echo "用户ID之和为:$sum"

5、写一个脚本

 (1) 传递一些目录给此脚本;

 (2) 逐个显示每个目录的所有一级文件或子目录的内容类型;

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

#!/bin/bash
#
sumd=0
sumf=0

for i in $(ls $*); do
        filetype=$(file $*/$i | cut -d: -f2 | awk  '{sub(/^[ \t]+/,"");print $0}')  
        echo "$i 文件类型为:$filetype."
        if [ "$filetype" == "directory" ]; then
                let sumd++
        else
                let sumf++
        fi
done
        echo "目录数量为:$sumd,文件数量为:$sumf. "

6、写一个脚本 通过命令行传递一个参数给脚本,参数为用户名 如果用户的id号大于等于500,则显示此用户为普通用户;

#!/bin/bash
#

if id $1 &> /dev/null; then
        echo 
else echo "user not existed."
        exit 2
fi

if [ $(id -u $1) -ge 500 ]; then
        echo " common user."
else echo "system user or root."        
fi

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

#!/bin/bash
#

ip=172.16.250.

for i in {20..100}; do
        if ping -w 1 -c 1 $ip$i &> /dev/null; then
                echo "$ip$i is up."
        fi
done

8、打印九九乘法表;

#!/bin/bash
#

for n in {1..9}; do
        for i in $(seq  $n); do
                echo -n -e "${i}x${n}=$[${i}*${n}]\t"
        done
                echo
done

[root@zf ~]# bash chengfa.sh
    1x1=1
    1x2=2   2x2=4
    1x3=3   2x3=6   3x3=9
    1x4=4   2x4=8   3x4=12  4x4=16
    1x5=5   2x5=10  3x5=15  4x5=20  5x5=25
    1x6=6   2x6=12  3x6=18  4x6=24  5x6=30  6x6=36
    1x7=7   2x7=14  3x7=21  4x7=28  5x7=35  6x7=42  7x7=49
    1x8=8   2x8=16  3x8=24  4x8=32  5x8=40  6x8=48  7x8=56  8x8=64
    1x9=9   2x9=18  3x9=27  4x9=36  5x9=45  6x9=54  7x9=63  8x9=72  9x9=81

原创文章,作者:N25-深圳-寻觅,如若转载,请注明出处:http://www.178linux.com/70835

(0)
N25-深圳-寻觅N25-深圳-寻觅
上一篇 2017-03-09 13:50
下一篇 2017-03-09 14:34

相关推荐

  • 决不放弃

    坚持到底!

    Linux干货 2017-11-17
  • shell脚本之变量类型、算数运算符、条件测试

    一、bash中的变量类型     本地变量:仅对当前shell有效,对其子shell无效             变量赋值:name=value      &n…

    Linux干货 2016-08-15
  • httpd2.4 应用

    练习:  (1)基于主机名实现三个虚拟主机     (2) 每虚拟主机使用独立的访问日志和错误日志 (3) 第三个虚拟主机的/admin要进行用户访问认证  (4) 在第二个虚拟主机上提供/status; (5) 在第三个虚拟主机提供路径别名/bbs,访问其它文件系统路径; (6) 尝试使用混合类型…

    Linux干货 2016-10-09
  • lvm基本应用,扩展及缩减实现

    一、    LVM的创建     LVM因为他的可扩展和可伸缩的特性,被广泛的应用于磁盘管理中,创建LVM则必须先创建pv然后创建vg最后才能创建lv,他们之间的关系如下:呈金字塔结构     1、创建查看pv     …

    Linux干货 2016-03-09
  • iptables基本知识

    1)Linux下的防火墙概念 a、一般谈到Linux下的防火墙,我们都会首先想到iptables,其实更确切的叫法应该是Netfilter/iptables,iptables和Netfilter其实是存在差别的。 b、尽管它们经常被用来相互替换使用,Netfilter是用来实现Linux内核中防火墙的Linux内核空间程序代码段,它要么被直接编译进内核,要么…

    Linux干货 2016-07-16
  • linux基础之lvm操作流程

    linux基础之lvm基本操作流程    LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。Linux用户安装L…

    2017-03-19

评论列表(1条)

  • 马哥教育
    马哥教育 2017-03-15 00:48

    赞,基本上都实现了,有一个需要注意的地方是建议ping 2次或者3次~~~继续加油~