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的更多相关文章

  1. mark LINUX_6.8 python_2.6.6 setup版本升级 python 2.7.9 安装 pip 临时使用国内镜像源库 指定模块版本 删除指定模块

    简单但却又经常需要使用  网上  贴子也很多  也经常用  所以 做个mark 吧: 1首先下载python2.7.9 源tar包 源码安装 可利用linux自带下载工具wget下载,如下所示:   ...

  2. 【前端】CentOS 7 系列教程之六: 安装 mysql 5.7

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/linux_6.html 进入/usr/local/src目录 cd /usr/local/src 下载mysql的 ...

随机推荐

  1. 关于MySQL导入数据到elasticsearch的小工具logstash

    logstash核心配置文件pipelines.yml #注:此处的 - 必须顶格写必须!!! - pipeline.id: invitation #下面路径配置的是你同步数据是的字段映射关系 pat ...

  2. 【IntelliJ IDEA】代码模板

    psvm:main方法 sout:console输出 iter:foreach遍历 fori:for索引遍历

  3. Zuul网关 @EnableZuulProxy 和 @EnableZuulServer 的区别

    1. @EnableZuulProxy 2. @EnableZuulServer 3.解释 1)@EnableZuulProxy简单理解为@EnableZuulServer的增强版, 当Zuul与Eu ...

  4. Python常用功能函数系列总结(一)

    本节目录 常用函数一:获取指定文件夹内所有文件 常用函数二:文件合并 常用函数三:将文件按时间划分 常用函数四:数据去重 写在前面 写代码也有很长时间了,总觉得应该做点什么有价值的事情,写代码初始阶段 ...

  5. 【Java】子类实例化过程

    子类对象实例化的全过程 子类继承父类以后,就获取了父类中声明的属性或方法.创建子类的对象,在堆空间中,就会加载所有父类中声明的属性. 当我们通过子类的构造器创建子类对象时,我们一定会调用其父类的构造器 ...

  6. BERT-Pytorch版本代码pipline梳理

    最近在做BERT的fine-tune工作,记录一下阅读项目https://github.com/weizhepei/BERT-NER时梳理的训练pipline,该项目基于Google的Transfor ...

  7. 扒一扒@Retryable注解,很优雅,有点意思!

    你好呀,我是歪歪. 前几天我 Review 代码的时候发现项目里面有一坨逻辑写的非常的不好,一眼望去简直就是丑陋之极. 我都不知道为什么会有这样的代码存在项目里面,于是我看了一眼提交记录准备叫对应的同 ...

  8. 《剑指offer》面试题29. 顺时针打印矩阵

    问题描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4 ...

  9. SQL查询中关键字的执行顺序

    SQL语句中的每个关键字都按照顺序往下执行,而每一步操作会生成一个临时表,最后的临时表就是最终结果: FROM <left_table>:from子句返回初始结果集 <join_ty ...

  10. SourceGenerator的应用: .Net多进程开发库 - Juxtapose

    背景 进程间通讯属于老生常谈的话题,可能已经有很多的通信示例代码,但在实际使用中需要做的东西还比较多.例如协议定制.消息收发.进程管理等都需要实现,进阶需求可能还需要实现回调函数.取消等. 个人在工作 ...