linux_6
1、编写脚本实现登陆远程主机。(使用expect和shell脚本两种形式)。
#使用expect远程登录
[root@centos8 ~]#dnf -y install expect
[root@centos8 ~]#yum info expect
Last metadata expiration check: 0:01:31 ago on Fri 01 Oct 2021 01:14:22 AM CST.
Installed Packages
Name : expect
Version : 5.45.4
...
[root@centos8 ~]#vim remote_login_expect.sh
#!/usr/bin/expect
spawn ssh 10.0.0.128
expect {
"*yes/no" { send "yes\n";exp_continue }
"password" { send "password\n";exp_continue }
"*]#" { send "hostname -I\r" }
}
interact
#执行验证
[root@centos8 ~]#chmod +x remote_login_expect.sh
[root@centos8 ~]#./login.sh
spawn ssh 10.0.0.128
root@10.0.0.128's password:
Last login: Fri Oct 1 01:47:30 2021 from 10.0.0.131
[root@centos7 ~]#hostname -I
10.0.0.128
#shell脚本调用expect
#!/bin/bash
ip=10.0.0.128
user=root
passwd=486.
expect <<EOF
spawn ssh $user@$ip
expect {
"*yes/no*" { send "yes\n";exp_continue }
"password" { send "$passwd\n";exp_continue}
"*]#" { send "hostname -I\r" }
}
expect eof
EOF
#执行脚本验证
[root@centos8 ~]#./login.sh
spawn ssh root@10.0.0.128
root@10.0.0.128's password:
Last login: Fri Oct 1 02:15:03 2021 from 10.0.0.131
[root@centos7 ~]#hostname -I
10.0.0.128
[root@centos7 ~]#
2、生成10个随机数保存于数组中,并找出其最大值和最小值
[root@centos7 ~]#cat max_min.sh
declare -i min max
declare -a nums
for ((i=0;i<10;i++));do
nums[$i]=$RANDOM
[ $i -eq 0 ] && min=${nums[$i]} && max=${nums[$i]}&& continue
[ ${nums[$i]} -gt $max ] && max=${nums[$i]}
[ ${nums[$i]} -lt $min ] && min=${nums[$i]}
done
echo array are ${nums[*]}
echo max is $max
echo min is $min
#执行验证
[root@centos7 ~]#bash max_min.sh
array are 13080 933 1678 2268 22196 31395 4216 19184 31842 11791
max is 3184
3、输入若干个数值存入数组中,采用冒泡算法进行升序或降序排序
#!/bin/bash
declare -a num
read -p "请输入生成随机数个数:" number
for (( i=0;i<$number;i++ ));do
num[$i]=$RANDOM
done
echo "before sort:${num[*]}"
declare -i n=$number
for (( i=0;i<n-1;i++ ));do
for ((j=0;j<n-1;j++));do
let next=$j+1
if (( ${num[$j]} > ${num[$next]} ));then
tmp=${num[$next]}
num[$next]=${num[$j]}
num[$j]=$tmp
fi
done
done
echo "after sort:${num[*]}"
4、总结查看系统负载的几种命令,总结top命令的指标大概什么含义(不要求全部写出来)
uptime、mpstat、top、htop
top 提供动态的实时进程状态
PID:进程id
USER:用户
PR:权重,优先级
VIRT:虚拟内存
RES:常驻内存
SHR:共享内存
S:进程状态,R表示运行
%CPU:cpu的占用率
%MEM:内存的占用率
TIME+:执行时间
COMMAND:进程的名称/路径
5、编写脚本,使用for和while分别实现192.168.0.0/24网段内,地址是否能够ping通,若ping通则输出"success!",若ping不通则输出"fail!"
#!/bin/bash
net="192.168.0"
multi_ping() {
ping -c2 -i0.1 -W1 $1 &> /dev/null
if [ $? -wq 0 ];then
echo "success!"
else
echo "fail!"
fi
}
for i in {0..255}
do
multi_ping $net.$i &
done
wait
6、每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式 为“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的时间
[root@centos8 ~]#cat bak_etc.sh
#!/bin/bash
[ -d /backup ] || mkdir /backup
bak_file="/backup/etcbak-`date -d "-1 days" +%Y-%m-%d-%H`.tar.xz"
tar -cxvf /$bak_file /etc
[root@centos8 ~]#crontab -e
30 1 * * 1-5 /root/bak_etc.sh
linux_6的更多相关文章
- mark LINUX_6.8 python_2.6.6 setup版本升级 python 2.7.9 安装 pip 临时使用国内镜像源库 指定模块版本 删除指定模块
简单但却又经常需要使用 网上 贴子也很多 也经常用 所以 做个mark 吧: 1首先下载python2.7.9 源tar包 源码安装 可利用linux自带下载工具wget下载,如下所示: ...
- 【前端】CentOS 7 系列教程之六: 安装 mysql 5.7
转载请注明出处:http://www.cnblogs.com/shamoyuu/p/linux_6.html 进入/usr/local/src目录 cd /usr/local/src 下载mysql的 ...
随机推荐
- Pytest_用例分组(6)
用例分组 pytest进行分组测试的方法是使用装饰器 @pytest.mark.标记名称,被标记为相同名称的用例可以看做为同一个组. 分组用例的运行方式是在执行命令中追加 -m "标记名称& ...
- Go数组遍历与排序
遍历数组 Go遍历数组有两种方式 1.按照数组下标进行遍历 2.用range遍历 package main import ( "fmt" ) func main() { // 声明 ...
- PyCharm - 关联mysql失败 - Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property manually.
时区错误,MySQL默认的时区是UTC时区,比北京时间晚8个小时. 所以要修改mysql的时长 在mysql的命令模式下,输入: set global time_zone='+8:00'; 再次连接成 ...
- C语言 运算符优先级和结合方向
运算符优先级和结合方向 初级运算符( ).[ ].->.. 高于 单目运算符 高于 算数运算符(先乘除后加减) 高于 关系运算符 高于 逻辑运算符(不包括!) 高于 条件运算 ...
- jsp文本框输入限制问题
1.jsp文本窗口实现控制输入格式 <input onkeyup = "value=value.replace(/[\W]/g,'')" onbeforepaste=&quo ...
- 508. Most Frequent Subtree Sum
Given the root of a tree, you are asked to find the most frequent subtree sum. The subtree sum of a ...
- Servlet Filter(过滤器)
Servlet Filter 又称 Servlet 过滤器,它是在 Servlet 2.3 规范中定义的,能够对 Servlet 容器传给 Web 资源的 request 对象和 response 对 ...
- 适配器模式(Adapter模式)
模式的定义与特点 适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作.适配器模式分为类结构型模式和对象结构型模式 ...
- javaObject类—getClass方法
1 package face_object; 2 /* 3 * Object:所有类的根类. 4 * Object是不断抽取而来的,具备所有对象都具备的共性内容. 5 * 常用的共性功能: 6 * 7 ...
- Centos配置yum本地源最简单的办法
有关centos配置yum本地源的方法 一.前提 先连接镜像 然后在命令行输入如下命令 mount /dev/sr0 /mnt cd /etc/yum.repos.d/ ls 之后会看到如下的界面 二 ...