N25第八周博客作业

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

#!/bin/bash

trap ‘mytrap’ INT

mytrap() {

   echo “quit”

   exit 1

}

for i in {1..254};do

        if ping -W 1 -c 1
172.16.150.$i&>/dev/null;then

                echo -e
“\033[32m172.16.250.$i\033[0m”

        else

                echo -e
“\033[31m172.16.250.$i\033[0m”

        fi

done

 


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

ifconfig NETWORK_NAME:# IPADDR/MASK

例如:ifconfig eno167777360  192.168.1.6/24

ip addr add NETWORK/MASK dev NETWORK_NAME label NETWORK_NAME:0

     例如:ip addr add 192.168.1.7/24 dev eno16777736 label eno16777736:0

 


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

#!/bin/sh

declare -a start

declare -a stop

for i in /etc/rc.d/rc3.d/S*;do

  echo “${i}  start”

  start[${#start[*]}]=$i

done

for l in /etc/rc.d/rc3.d/K*;do

  echo “${l}  stop”

  stop[${#stop[*]}]=$l

done

echo “^S have 
${#start[*]}”

echo “^K have 
${#stop[*]}”

     

                            or

 

#!/bin/sh

declare -a mysz

mysz() {

for i in /etc/rc.d/rc3.d/${1}*;do

  echo “${i}  $2”

done

 echo “^${1} files  have `ls /etc/rc.d/rc3.d/${1}*| wc -w`”

}

mysz S  start

mysz K  stop


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

#!/bin/sh

b=0

for i in $*;do

  if id -u $i
&>/dev/null;then

     echo “$i ID is `id
-u $i`”

     a=`id -u $i`

     let b+=$a

  else

    echo “$i not found
!!”

    exit 1

  fi

done

echo “all users ID is $b”

 


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

#!/bin/sh

sumf=0

sumd=0

trap
‘echo -en “dir $sumd\n”;echo -en “file $sumf\n”;exit 1’ INT

 

f_type()
{

local f

local
file_path

if [ -d
$1 ];then

  for f in `ls $1`;do

    file_path=${1}/$f

    [ -d $file_path ]&&let
sumd++&&f_type $file_path

    [ -f $file_path ]&&let sumf++

    file $file_path

  done

else

  echo “not dir!!”

  continue

fi

}

 

for i
in `seq 1 $#`;do

  f_type $1

done

 

echo
“dir $sumd”

echo
“file $sunf”

 


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

#!/bin/sh

aa() {

  
echo “no user!!”

  
exit 1

}

id $1&>/dev/null  || aa

if [ `id -u $1` -ge  500 ];then

        echo “$i is a Ordinary
user!!”

fi

 


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

#!/bin/sh

mytrap() {

        echo “quit”

        exit 1

}

trap ‘mytrap’ INT

for i in {20..100};do

        if      ping -W 1 -c 1 172.16.250.$i
&>/dev/null;then

                echo
“172.16.250.$i”

        fi

done

 


8
、打印九九乘法表;

#!/bin/sh

for ((i=1;i<=9;i++));do

  for ((a=1;a<=$i;a++));do

     echo -n  -e 
“${a}x${i}=$[${a}*${i}]\t”

  done

  echo

done

 

or

 

#!/bin/sh

a=1

while [ $a -le 9 ];do

   for i in `seq 1 $a`;do

      let b++

      echo -en
“${i}x${a}=$[${i}*${a}]\t”

   done

   let a++

   echo

done

~     

原创文章,作者:N25_韩奇洋,如若转载,请注明出处:http://www.178linux.com/70092

(0)
N25_韩奇洋N25_韩奇洋
上一篇 2017-02-26
下一篇 2017-02-26

相关推荐

  • 第三周作业

    列出当前系统上所有已经登录的用户名,同一个用户登录多次,则只显示一次 [root@app02 ~]# who |grep -o -E '^\<[a-zA-Z]+\>'|sort -u root XIAOXIN 2. 取出最后登录到当前系统的用户相关信息 [r…

    Linux干货 2016-08-29
  • 26期网络班

    26期网络班

    Linux干货 2016-12-26
  • 优云Automation:实现IT服务弹性伸缩的利器

    随着互联网业务快速持续增长,IT资源使用量按需变化成为常态,这就要求信息部门能快速响应资源使用的变化要求,对运维提出不小挑战。比如电商、在线教育等企业经常推出一些秒杀、抢红包活动,在特定时间段对资源的利用处于高峰期,之后基本处于空闲。 几年前,我们从申请采购到应用部署上线都只能人工操作,需要提前几个月开始规划。如今通过云平台能很好实现资源按需动态管理,运维人…

    系统运维 2017-03-15
  • 安装CentOS 6.9

    安装完VMvare,VMware可以运行虚拟机,虚拟机就相当于一台电脑,然后我们在这台电脑上安装Linux系统,我们这次介绍安装CentOS 6.9的过程 1.打开VMware,依照下图步骤安装     首先我们需要创建新的虚拟机,然后配置出适合自己物理机的虚拟机 2.点击典型类型安装     这里推荐使用典…

    2017-07-12
  • 网络班23期学习宣言

    马哥Linux运维学院 学习宣言 亲爱的小伙伴:        欢迎大家报名马哥Linux运维网络学习班,跟随马哥学习Linux技术,成就Linux大牛之梦。在这里,我们不仅可以学习到最优秀的技术课程,还可以跟着追梦的小伙伴们一起学习、一起进步。 为了督促大家一直积极认真努力的学习,请各位同学在评论区写出你的学习宣言。…

    2016-09-05

评论列表(1条)

  • 马哥教育
    马哥教育 2017-03-29 17:17

    脚本功能都已经实现了,但是没有经过着色的代码看起来着实很痛苦,内容固然重要,但也要同时注意可读性。