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
~