目录
1、编写脚本实现登陆远程主机。(使用expect和shell脚本两种形式)
3、输入若干个数值存入数组中,采用冒泡算法进行升序或降序排序
4、总结查看系统负载的几种命令,总结top命令的指标大概什么含义
5、编写脚本,使用for和while分别实现192.168.0.0/24网段内,地址是否能够ping通,若ping通则输出”success!”,若ping不通则输出”fail!
6、每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式 为“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的时间
7, 使用awk以冒号分隔获取/etc/passwd文件第一列
9, 总结ssh常用参数,用法。SSH交互原理分析,需要画图
1、编写脚本实现登陆远程主机。(使用expect和shell脚本两种形式)
expect形式
#!/bin/expect
set ip [lindex $argv 0]
set user root
set passwd "*jds&623,dsn"
spawn ssh $user@$ip
expect {
"yes/no" { send "yes\n";exp_continue }
"password" { send "$passwd\n" }
}
interact
#执行示例
[root@node01 16:25:13] ~/homework/sre-week4
-- # ./expect_login_args.sh 192.168.0.202
spawn ssh root@192.168.0.202
root@192.168.0.202's password:
Last login: Thu Jan 26 16:22:51 2023 from 192.168.0.201
[root@node02 16:25:19] ~
-- # hostname
node02
[root@node02 16:25:23] ~
-- #
shell形式
#!/bin/bash
#
# fileName: shell_login.sh
# author: liAng
# mail: angl6112@163.com
# created: Thu 26 Jan 2023 04:06:43 PM CST
#
### BEGIN INIT INFO
# Description:
#
#
### END INIT INFO
IP=$1
USER=root
PASSWD='*jds&623,dsn'
function package_check() {
if which expect &>/dev/null; then
echo "expect alerdy existed"
else
echo "expect installing..."
yum install expect -y &>/dev/null || {
echo "expect install failed."
exit 1
}
fi
}
function ping_test(){
echo "ping test $IP, Please wait..."
if ping -c 3 $IP &>/dev/null; then
echo "$IP ping test success."
else
echo "ERROR: $IP ping test failed."
exit 3
fi
}
function worker() {
expect <<EOF
set timeout 20
spawn ssh $USER@$IP
expect {
"yes/no" { send "yes\n";exp_continue }
"password" { send "$PASSWD\n"}
}
expect "#" { send "hostname\n" }
expect "#" { send "exit\n" }
expect eof
EOF
}
function main() {
ping_test
package_check
worker
}
main
#执行示例
[root@node01 16:51:44] ~/homework/sre-week4
-- # sh shell_login.sh 192.168.0.202
ping test 192.168.0.202, Please wait...
192.168.0.202 ping test success.
expect alerdy existed
spawn ssh root@192.168.0.202
root@192.168.0.202's password:
Last login: Thu Jan 26 16:51:04 2023 from 192.168.0.201
[root@node02 16:51:49] ~
-- # hostname
node02
[root@node02 16:51:49] ~
-- # exit
logout
Connection to 192.168.0.202 closed.
[root@node01 16:51:49] ~/homework/sre-week4
-- #
2、生成10个随机数保存于数组中,并找出其最大值和最小值
#!/bin/bash
#
# fileName: random_compare.sh
# author: liAng
# mail: angl6112@163.com
# created: Thu 26 Jan 2023 04:55:38 PM CST
#
### BEGIN INIT INFO
# Description:
#
#
### END INIT INFO
declare -a random_list
declare -i max min
function compare() {
for(( i=0;i<10;i++))
do
num=$RANDOM
random_list[$i]=$num
[ $i -eq 0 ] && max=$num && min=$num && continue
[ $num -gt $max ] && max=$num && continue
[ $num -le $min ] && min=$num && continue
done
echo -e "随机数: \n${random_list[@]}\n"
echo -e "最大值: $max\n最小值: $min\n"
}
function main(){
compare
}
main
#执行示例:
[root@node01 17:13:15] ~/homework/sre-week4
-- # ./random_compare.sh
随机数:
28658 3276 24598 29809 19082 20135 29269 15215 4000 341
最大值: 29809
最小值: 341
3、输入若干个数值存入数组中,采用冒泡算法进行升序或降序排序
#!/bin/bash
#
# fileName: bubble_sort.sh
# author: liAng
# mail: angl6112@163.com
# created: Thu 26 Jan 2023 07:01:16 PM CST
#
### BEGIN INIT INFO
# Description:
# 1. 生成10个随机数, 存入数组 random_list
# 2. 对数组中的元素进行冒泡排序
# 3. revers=0 默认从小到大排序; revers=1从大到小排序
### END INIT INFO
#数组长度
len=10
revers=${1:-0}
declare -a random_list
function producer(){
for((i=0;i<$len;i++))
do
random_list[$i]=$RANDOM
done
echo -e "随机数为: \n${random_list[@]}\n"
}
function bubble_sort(){
for((i=1;i<$len;i++))
do
for((n=1;n<$len;n++))
do
now=${random_list[$n]}
befer=${random_list[$[n-1]]}
[ $now -lt $befer ] && random_list[$n]=$befer && random_list[$[n-1]]=$now
done
done
}
function print_sort(){
case $revers in
1)
echo "从大到小排序:"
for((i=$[len-1];i>=0;i--))
do
echo -n "${random_list[$i]} "
done
echo
;;
*)
echo "从小到大排序:"
echo ${random_list[@]}
;;
esac
}
function main(){
producer
bubble_sort
print_sort
}
main
#测试示例
[root@node01 21:08:49] ~/homework/sre-week4
-- # sh bubble_sort.sh
随机数为:
18574 27363 29378 14140 21514 262 18293 4583 12661 12129
从小到大排序:
262 4583 12129 12661 14140 18293 18574 21514 27363 29378
[root@node01 21:08:51] ~/homework/sre-week4
-- # sh bubble_sort.sh 1
随机数为:
23018 20493 5467 18593 32661 12348 19051 28180 6362 6394
从大到小排序:
32661 28180 23018 20493 19051 18593 12348 6394 6362 5467
[root@node01 21:08:52] ~/homework/sre-week4
-- #
4、总结查看系统负载的几种命令,总结top命令的指标大概什么含义
1、查看操作系统平均负载
显示的是最近 1, 5, 15分钟的平均负载
2、查看CPU时间片分布
参数:
1: 每个1s显示一次
3: 共显示3次
选项:
-P: 指定要显示的CPU 核心编号
ALL: 显示所有核心
<cpu_list>: 指定核心编号, 这是个列表 如: 3或者 4-7
-o: 指定输出格式
json: 使用json格式输