马帮-邹佳豪-第六周

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

expect 格式

1:安装expect

yum -y install expect

执行脚本

#!/usr/bin/expect

spawn ssh 10.0.0.80  #开启新进程,执行ssh命令

expect { #监控屏幕是否出现yes/no 输入yes

        "yes/no" { send "yes\n";exp_continue }  #exp_continue 匹配多个字符串

        "password" { send "123456\n" }

}

interact  #执行后恢复成交互式操作

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

#!/bin/bash

max=0

min=0

declare -a nums

for i in {0..9};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

ps:shell 编程中,对变量进行二次赋值时不需要添加$max=xxx   这样会报错  $max  只要在使用需要打印时直接使用   ${nums[*]} 和 ${nums[@]} 相同,都是列出全部数组


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

#!/bin/bash

declare -a nums

for i in {0..9};do

        nums[$i]=$RANDOM

done

echo "nums is ${nums[*]}"

#升序排序

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

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

                if [ ${nums[$j]} -gt ${nums[$j+1]} ]

                then

                        temp=${nums[$j]}

                        nums[$j]=${nums[$j+1]}

                        nums[$j+1]=$temp

                fi

        done

done

echo "nums is ${nums[*]}"

#降序排序

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

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

                if [ ${nums[$j]} -lt ${nums[$j+1]} ]

                then

                        temp=${nums[$j]}

                        nums[$j]=${nums[$j+1]}

                        nums[$j+1]=$temp

                fi

        done

done

echo "nums is ${nums[*]}"


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

top -b -n 1|grep Cpu |awk -F ',' '{print $4}'    取出cup的空闲率

free -h |grep Mem |awk -F " " '{print $2,$4}'      查看总内存以及剩余内存空间

磁盘io 可以使用 sysatst包中的 iotop 查询当前进程中谁的io读写较大


网络io  yum -y install iftop

iftop -n 以IP地址显示当前的通讯



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


#!/bin/bash

ip=10.0.0.

for i in {1..254};do

  ping -c 2 $ip$i>> /dev/null  && echo "$ip$i is success!" || echo "$ip$i is fail!" &

done

wait                   在命令加上& 可以同时执行多个进程,不用等待上一个进程结束在执行下一个进程     wait 执行完以后停止


i=1

while ((i <255))

do

        ping -c 2 $ip$i>> /dev/null  && echo "$ip$i is success!" || echo "$ip$i is fail!" &

        ((i++))

done

wait

~       

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


#!/bin/bash

[ -d /backup ] ||mkdir -p /backup

tar -Jcvf /backup/`date -d '-1 day' +%F-%H`.tar.xz /etc

~                                                       

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容