n64-6

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

1.expcet
#!/usr/bin/expect
 set ip 10.0.0.7
set user root
set password ********
set timeout 10
spawn ssh $user@$ip
 expect {
 "yes/no" { send "yes\n";exp_continue }
 ​ "password" { send "$password\n" }
 }
interact

2.bash

#!/bin/bash
ip=10.0.0.7
user=root
password=********
 expect <<EOF
 set timeout 20
 spawn ssh $user@$ip
 expect {
 ​ "yes/no" { send "yes\n";exp_continue }
 ​ "password" { send "$password\n" }
 }
expect eof
 EOF


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

#!/bin/bash
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
declare -i init
declare -a nums
for ((q=0;q<9;q++));do
nums[$q]=$RANDOM
done
echo "生成的数组: ${nums[*]}"

len=${#nums[*]}
for ((j=0;j<$len;j++));do
for ((i=0;i<$len-1;i++));do
if [ ${nums[$i]} -gt ${nums[$i+1]} ];then
x=${nums[$i]}
nums[$i]=${nums[$i+1]}
nums[$i+1]=$x
fi
done
done
echo "升序后的数组: ${nums[*]}"

 

 

 

 

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

uptime:查看系统平均负载

mpstat:百分比显示CPU利用率的各项指标

top和htop:查看进程的实时状态

free:查看[内存](https://so.csdn.net/so/search?q=内存&spm=1001.2101.3001.7020)空间的使用状态

iotop:以top方式监控磁盘的I/O,实时监控,而且可以只显示正在执行读写的进程,提供很多非交互式参数;

iftop:显示网络带宽的使用情况,查看访问当前主机的流量的实时信息,实时连接等;

 

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

1,for

#!/bin/bash
a=192.168.116
for i in {1..254};do
ping -c3 -W1 $a.$i &>/dev/null
ip="$a.$i"
if [ $? -eq 0 ];then
echo "$ip sucess"
else
echo "$ip fail"
fi
done

 

 

2 while

#!/bin/bash
a=192.168.116
i=1
while [ $i -le 254 ]
do
ip=$a.$i
ping -c3 -W1 $ip &>/dev/null
if [ $? -eq 0 ];then
echo "$ip sucess"
else
echo "$ip fail"
fi
let i++
done

 

 


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

[root@localhost ~]# cat etcbak.sh
#!/bin/bash
[ -d /backup ] || mkdir -p /backup
tar -cJf /backup/etcbak-`date -d yesterday +%F-%H`.tar.xz /etc
[root@localhost ~]#
[root@localhost ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@localhost ~]# crontab -l
30 1 * * 1-5 bash baketc.sh &>/dev/null

posted @ 2022-05-23 19:08  N64_glc  阅读(55)  评论(0)    收藏  举报