N25期–第八周作业

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

#!/bin/bash

declare -i i=1

hostping(){
    if ping -W 1 -c 1 172.16.250.$i &> /dev/null;then
        echo -e "\033[32m 172.16.250.$i is up.\033[0m" 
    else 
        echo -e "\033[31m 172.16.250.$i is down.\033[0m"

    fi
    }
    while [ $i -le 255 ]; do
    hostping 172.16.250.$i
    let i++ 

    done

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

1、ifconfig命令

ifconfig eth0:0 192.168.6.100 netmask 255.255.255.0 up

2、修改配置文件信息

vim /etc/sysconfig/network-scripts/ifcfg-eth0:0

DEVICE=eth0:0 //虚拟网络接口,随意 
ONBOOT=yes //系统启动时激活 BOOTPROTO=static //使用静态ip地址 
IPADDR=192.168.6.100 //该虚拟网络接口的ip别名,随意 NETMASK=255.255.255.0 //子网掩码,对应ip别名 GATEWAY=192.168.6.1 //网关,对应ip别名 HWADDR=00:10:5A:5E:B1:E4 //网卡MAC地址,无需更改 
USERCTL=no //是否给予非root用户设备管理权限

CentOS 7
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="enp0s3"
UUID="933cdc9b-b383-4ddd-b219-5a72c69c9cf0"
ONBOOT="yes"
HWADDR="08:00:27:3F:AB:68"
IPADDR0="192.168.1.150"
IPADDR1="192.168.6.100"
IPADDR2="192.168.6.101"
PREFIX0="24"
GATEWAY0="192.168.1.1"
DNS1="192.168.1.1"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"

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

#!/bin/bash
declare i j=0
declare i k=0

for i in `ls /etc/rc.d/rc3.d/`;do

    if  [[ $i =~  ^K ]];then    
        echo "$i stop"
    let j++

    elif [[ $i =~  ^S ]];then   
        echo "$i start"
    let k++

    fi
done

    echo "共$j个文件以K开头"
    echo "共$k个文件以S开头"

4、写一个脚本,完成以下功能 (1) 脚本能接受用户名作为参数; (2) 计算此些用户的ID之和;

#!/bin/bash
declare -i sum=0
if [ $# -le 0 ];then                           
  echo "Useage:bash.sh name1 name2..." 
  exit 1
fi

for i in $@;do                                 
  if id $i &> /dev/null;then                   
    let sum+=$(id -u $i)                      
  else
    echo "$i : does not exist!"                
  fi
done
echo "All user id: $sum"

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

#!/bin/bash

declare -i file=0
declare -i sfile=0
declare -i dir=0
declare -i sfile=0
declare -i other=0


for path in $@ ;do
       if [ -f $path ]; then                
       echo "$path is a Common file."
       let file++
   elif [ -L $path ]; then                  
       echo "$path is a Symbolic file."
       let sfile++
   elif [ -d $path ]; then                
       echo "$path is a Directory."
       let dir++
   elif [ -S $path ];then                   
       echo "$path is a socket file."
       let sfile++
   else
       echo "Other type."                   
       let other++


       fi
done
echo "Common file $file"
echo "Symbolic file $sfile"
echo "Directory $dir"
echo "socket file $sfile"
echo "Other type $other"

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

#!/bin/bash

read -p "please enter a use name " username

        user_id=`id -u $username`

if (id $username &> /dev/null); then
        if [ $user_id -gt 500 ]; then
                echo "$username is a common user."

        else
                echo "$username is a system user."
        fi
else
        echo "$username not exist"
fi
done

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

#!/bin/bash
#
net="172.16.250"
    for i in {20..100};do
        if ping -c 1 -w 1 $net.$i &> /dev/null;then     
        echo " $net.$i is online "

        fi
    done

8、打印九九乘法表;

#!/bin/bash
for ((i=i;i<=9;i++)){
        for((j=1;j<=i;j++));do
        echo -n -e "$[i]x$[j]=$[$i*$j]\t"
 done   
        echo
}

 

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

(0)
victorli88victorli88
上一篇 2017-02-27 12:26
下一篇 2017-02-27 13:52

相关推荐

  • vim 编辑器介绍

         vi: Visual Interface ,文本编辑器  文本:ASCII, Unicode  文本编辑种类: 行编辑器: sed 全屏编辑器:nano, vi vim – Vi Improved  其他编辑器: gedit 一个简单的图形编辑器 gvim 一个 Vim 编辑器…

    2017-06-03
  • 每天一个Linux命令

        程序管理:      程序的组成部分:二进制程序文件,库文件,配置文件,帮助文件。                      二进制和库文件可执行,库文件不能独立执行,只能被调用时执…

    Linux干货 2017-04-08
  • Linux系统程序包的安装–RPM

           我们知道在操作系统上使用的程序都是有程序员通过开发工具得来的,程序员直接编写的纯文本的文件,我们称之为源代码,由于计算机识别的是二进制程序,因此在完成源代码编写之后,就必须要经过编译,使之成为操作系统可以“看得懂”的二进制程序,这里的编译是通过编译器来进行的操作,编译器的功能就是将源代码程序“转换”为二进…

    2017-04-23
  • Web缓存核心技术点需知

    Edit Web缓存核心技术点需知 5.1 HTTP首部控制 5.2 基于新鲜度检测机制: 2.1 特征1:时间局部性 2.2 特征2:空间局部性 2.3 缓存的优点 2.4 哪类数据应该被缓存 2.5 哪类数据可缓存但不应该被缓存 2.6 缓存命中率决定缓存有效性 2.7 缓存数据生命周期 2.8 缓存处理步骤 2.9 缓存和普通数据读取的区别 1. 完整…

    Linux干货 2016-11-14
  • ☞卸载kernel玩一玩

    卸载kernel玩一玩 废话不多说,下面开始卸载内核这一惊险之旅,特别提醒在开始之前做好虚拟机的快照,也许会造成系统无法启动,也许会出现各种错误,也许会笑着删数据库跑路,也许会从入门到放弃,,请系好安全带。  练习 冒泡排序法 #!/bin/bash##Author:jasonmc#Date:2016-08-24#Description:buble…

    Linux干货 2016-08-26
  • haproxy

    12.1 高性能负载均衡软件HAProxy介绍 随着互联网业务的迅猛发展,大型电商平台和门户网站对系统的可用性和可靠性要求越来越高,高可用集群、负载均衡集群成为一种热门的系统架构解决方案。在众多的负载均衡集群解决方案中,有基于硬件的负载均衡设备,例如F5、Big-IP等,也有基于软件的负载均衡产品,例如HAProxy、LVS、Nginx等。在软件的负载均衡产…

    2018-01-03