第六周作业

1、编写脚本实现登陆远程主机。(使用expectshell脚本两种形式)。

(1) expect脚本形式:

#!/usr/bin/expect

set ip 10.0.0.150

set user root

set password 123456

set timeout 10

spawn ssh $user@$ip

expect {

yes/no” { send yes\n;exp_continue }

password{ send $password\n” }

}

interact

(2) shell 脚本形式:

#!/usr/bin/ bash

ip=10.0.0.150

user=root

password=123456

expect  <<EOF

set timeout 10

spawn ssh $user@$ip

expect {

yes/no” { send yes\n;exp_continue }

password{ send $password\n” }

}

expect eof

EOF

2、生成10个随机数保存于数组中,并找出其最大值和最小值

declare -i min max

declare -a nums

for ((i=0;i<10;i++));do

        nums[$i]=$RANDOM

        [ $i -eq 0 ] && min=${nums[0]} && max=${nums[0]}&& continue

        [ ${nums[$i]} -gt $max ] && max=${nums[$i]} && continue

        [ ${nums[$i]} -lt $min ] && min=${nums[$i]}

done      

echo "All numbers are ${nums[*]}"

echo Max is $max

echo Min is $min

 

3、输入若干个数值存入数组中,采用冒泡算法进行升序或降序排序

#!/bin/bash

k=0

while true

do

read -p "是否需要输入数值[yes/no]:" do

  if [ $do == "no" ]    

  then break

  fi

read -p "请输入第$(($k+1))个元素:" key

score[$k]=$key

let k++

done

for ((i=1;i<${#score[*]};i++))

do

 for ((j=0;j<${#score[*]}-$i;j++))

 do

   if [ ${score[$j]} -gt ${score[((j+1))]} ]

     then

      temp=${score[j+1]}

         score[((j+1))]=${score[$j]}

         score[$j]=$temp

      fi

   done

done

echo ${score[*]}

4、总结查看系统负载的几种命令,总结top命令的指标大概什么含义(不要求全部写出来)

(1) pstree 可以用来显示进程的父子关系,以树形结构显示

(2) ps 可以进程当前状态的快照,默认显示当前终端中的进程,Linux系统各进程的相关信息都在/Proc/PID目录下的各文件。

(3) prtstat 可以显示进程信息,来自psmisc

(4) top 查看进程的实时状态

选项:-d 只当刷新时间间隔,默认3

      -b  全部显示所有进程

 -n  刷新多少次后退出

 -H 线程模式

5、编写脚本,使用forwhile分别实现192.168.0.0/24网段内,地址是否能够ping通,若ping通则输出"success!",若ping不通则输出"fail!"

(1)for脚本:

#!/bin/bash

 

for siteip in $(seq 1 254)do

    site="192.168.1.${siteip}"

    ping -c1 -W1 ${site} &> /dev/null

    if [ "$?" == "0" ]; then

        echo "$site is UP"

    else

        echo "$site is DOWN"

    fi

done

(2) while脚本

#!/system/bin/sh

          

while true

do                                    

        ping -c 8 -w 100 www.baidu.com

        if [[ $? != 0 ]];then     

                echo " ping fail "

                sleep 5

        else                   

                echo " ping ok"   

                /system/bin/reboot        

        fi                                

                                          

done

5、每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式 为“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的时间


#!/bin/bash

DIR=etcbak-`date -d '-1 day' +%Y-%m-%d-%H`

tar -Jcvf /backup/${DIR}.tar.xz /etc/ &> /dev/null

 

posted @   拢落  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示