第六周提交

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

expect 方式

        #!/usr/bin/expect

        spawn ssh root@10.0.0.130

        expect {

        "yes" { send "yes\n";exp_continue }

        "password" { send "mypassword\n" }

        }

        interact

shell方式

        #!/bin/bash

        expect <<EOF

        spawn ssh root@10.0.0.130

        expect {

        "yes" { send "yes\n";exp_continue }

        "password" { send "mypassword\n" }

        }

        expect eof

        EOF

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

[root@centos7 ~]# cat getnumber.sh

#!/bin/bash

declare -i min max

declare -a number

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

number[$i]=$RANDOM

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

[ ${number[$i]} -gt $max ] && max=${number[$i]}

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

done

echo " All number is ${number[*]} "

echo "Max number is  $max "

echo "Min number is  $min "

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

[root@centos7 ~]# cat sort.sh

#!/bin/bash

#

declare -a arr

#死循环,用于从键盘读取排序选项

echo "请从键盘输入您想排序的数字,以空格隔开,回车结束:"

read -a arr

read -p "请输入选项(a:升序排序,d:降序排序,q:退出程序):" flag

case $flag in

a)

echo ${arr[*]}

len=${#arr[*]}

for ((j=0;j<$len;j++));do

    for ((i=0;i<$len-1;i++));do

        if [ ${arr[$i]} -gt ${arr[$i+1]} ];then

            x=${arr[$i]}

            arr[$i]=${arr[$i+1]}

            arr[$i+1]=$x

        fi

    done

done

echo "排序结果为:" ${arr[*]}

;;

d)

len=${#arr[*]}

for ((j=0;j<$len;j++));do

    for ((i=0;i<$len-1;i++));do

        if [ ${arr[$i]} -lt ${arr[$i+1]} ];then

            x=${arr[$i]}

            arr[$i]=${arr[$i+1]}

            arr[$i+1]=$x

        fi

    done

done

echo "排序结果为:" ${arr[*]}

;;

q)

echo "结束程序"

;;

*)

echo "输入选项错误,请重新输入:)"

;;

esac

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

查看系统负载的命令有

vmstat 查看虚拟内存信息

iostat和iotop 查看磁盘io

iftop 查看网络IO

top 查看系统负载 free 查看内存占用

top - 11:31:36 up 11 days, 18:33,  2 users,  load average: 0.00, 0.01, 0.05

 当前系统时间 开机时长          连接用户数         5 10 15分钟CPU负载

Tasks:  99 total,   1 running,  98 sleeping,   0 stopped,   0 zombie

运行总进程数   活动进程数   睡眠状态进程数  停止      僵尸  进程数

%Cpu(s):  0.0 us,  0.2 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

上一次刷新后间隔内CPU状态的百分比情况;是多核的平均值

us:用户空间内没有nice调整过优先级的进程运行的时间

sy:内核空间进程运行的时间

ni:调整过nice的用户空间进程运行时间

id:空闲时间

wa:等待IO的时间

hi,硬中断时间

si,软中断(模式切换)

st,虚拟机偷走的时间(虚拟机内进程执行的时间)

KiB Mem :   995704 total,   293864 free,   160496 used,   541344 buff/cache

内存使用情况

KiB Swap:  2096124 total,  2096124 free,        0 used.   637940 avail Mem

SWAP使用情况

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND

进程ID、优先级、nice值、使用虚拟内存、使用物理内存、共享内存、CPU占用、内存占用百分比、占用CPU时间片累计时长、进程命令

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

#!/bin/bash

for ip in `seq 254`;do

    echo -n "ping 10.0.0.$ip ...."

    ping 10.0.0.$ip -c 1 -w 1 &> /dev/null

    if [ $? == 0 ]; then

        echo "success!"

    else

        echo "fail!"

    fi

done

while

#!/bin/bash

ip=1

while (( ip<=254));do

    echo -n "ping 10.0.0.$ip ...."

    ping 10.0.0.$ip -c 1 -w 1 &> /dev/null

    if [ $? == 0 ]; then

        echo "success!"

    else

        echo "fail!"

    fi

let ip++

done

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

crontab -e

30      1       *       *       1-5     /backup/backup.sh

cat /backup/backup.sh

#!/bin/bash

/usr/bin/tar cJf /backup/etcbak-`date -d -1day +%F-%H`.tar.xz /etc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值