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

#expect方式
yum -y install expect vim remote_ssh.sh
#!/usr/bin/expect
set ip [lindex $argv 0]
set password [lindex $argv 1]
set user [lindex $argv 2]
spawn ssh $user@$ip
expect {
"yes/no" { send "yes\n";exp_continue }
"password" { send "$password\n" }
}
interact [root@centos8 ~]#chmod +x ssh-remote.sh
[root@centos8 ~]# ./ssh-remote.sh 10.0.0.18 root P@SSW0RD #shell方式
[root@centos8 ~]#yum -y install sshpass
[root@centos8 ~]# vim ssh-remote.sh
#!/bin/bash
IP=$1
USER=$2
PASSWORD=$3 sshpass -p $PASSWORD ssh -o StrictHostKeyChecking=no $user@$ip [root@centos8 ~]#chmod +x ssh-remote.sh
[root@centos8 ~]#./ssh-remote.sh 10.0.0.18 root P@SSW0RD

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

vim max_min.sh
#!/bin/bash
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 “Numbers are ${nums[*]}”
echo Max is $max
echo Min is $min

3、输入若干个数值存入数组中,采用冒泡算法进行升序或降序排序

vim argssum.sh
read -p "请输入数值个数:" COUNT
declare -a nums
for ((i=0;i<$COUNT;i++));do
num[$i]=$RANDOM
done
echo "${num[@]}" declare -i n=$COUNT
for (( i=0; i<n-1; i++ ));do
for (( j=0; j<n-1-i; j++ ));do
let x=$j+1
if (( ${num[$j]} < ${num[$x]} ));then
#从大到小排列
tmp=${num[$x]}
num[$x]=${num[$j]}
num[$j]=$tmp
fi
done
done
echo ${num[*]}
echo "the max integer is $num,the min integer is ${num[$((n-1))]}"

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

CPU:
[root@localhost ~]#top
[root@localhost ~]#top -b -n 1 | grep Cpu | awk -F ',' '{print $4}' | awk '{print $1*10}'
997 内存:
[root@localhost ~]#free -mh |awk /Mem/'{print $3}'
#已使用内存
596M
[root@localhost ~]#free -mh |awk /Mem/'{print $2}'
#总大小
977M 硬盘:
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 200M 0 part /boot
└─sda2 8:2 0 19.8G 0 part
├─centos-root 253:0 0 15.9G 0 lvm /
├─centos-swap 253:1 0 2G 0 lvm [SWAP]
└─centos-home 253:2 0 2G 0 lvm /home
sr0 11:0 1 1024M 0 rom [root@localhost ~]# lsblk|grep disk
#过滤出所有硬盘(disk)
sda 8:0 0 20G 0 disk
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
[root@localhost ~]#lsblk |grep disk|awk -F "[ G]+" '{print $4}'
20
20
20 i/o:
[root@localhost ~]#iostat -kx | grep sda| awk '{print $4}'
0.12

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

[root@localhost ~]#bash for.sh
1连通性 success
2连通性 success
3连通性 fail
4连通性 fail
5连通性 fail
6连通性 fail #!/bin/bash
for i in {1..254}
do
ping -c 3 192.168.91.$i &>/dev/null
if [ $? -eq 0 ]
then
echo "$i连通性 success"
else
echo "$i连通性 fail"
fi
done while
#!/bin/bash
i=1
while [ $i -lt 255 ]
do
ping -c3 192.168.91.$i &>/dev/null
if [ $? -eq 0 ]
then
echo "$i连通性 success"
else
echo "$i连通性 fail"
fi
let i++
done [root@localhost ~]#bash w.sh
1连通性 success
2连通性 success
3连通性 fail
4连通性 fail
5连通性 fail
6连通性 fail

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

[root@localhost ~]#cat back.sh
#!/bin/bash
name=`date -d -1day +%F-%H`
[ -e /backup ]
if [ $? -eq 0 ]
then cp -a /etc/* /backup/etcbak$name &>/dev/null
else
mkdir /backup
cp -a /etc/* /backup/etcbak$name &>/dev/null
fi
[root@localhost ~]#ln -s /data/back.sh /usr/local/bin/
[root@localhost ~]#crontab -e
30 1 * * 1-5 /usr/local/bin/back.sh
[root@localhost ~]#crontab -l
30 1 * * 1-5 /usr/local/bin/back.sh
[root@localhost ~]#bash back.sh

最新文章

  1. DX12龙书第6章习题
  2. 浩瀚技术团队... 安卓智能POS移动PDA开单器 开单器 进销存系统 进销存系统
  3. The listener supports no services解决一例
  4. ruby的hash学习笔记例: 将字符串文本中的单词存放在map中
  5. Http协议Get方式获取图片
  6. 【转载】安装和使用花生壳(linux)
  7. C函数指针简单用例
  8. (简单) HDU 2612 Find a way,BFS。
  9. 前端基础之初识 HTML
  10. javascript中toString和valueOf方法的区别
  11. 使用 webpack 打包 font 字体的问题
  12. ArrayList与Vector的区别
  13. 51nod 1630(定积分 + 期望)
  14. Struts2中 Action class not found 问题
  15. Mac下搭建react及bable
  16. Tomcat开启JMX监控 visualvm
  17. 第二节 JavaScript基础
  18. IntelliJ IDEA安装主题详细步骤
  19. Three ways to make your WPF images pop out on MouseOver
  20. 【AndroidManifest.xml详解】Manifest属性之sharedUserId、sharedUserLabel

热门文章

  1. 从服务端生成Excel电子表格(GcExcel + SpreadJS)
  2. 记录常见的问题:encodeURICompnent 解码过程中出现空格 以及 第三方app中使用schema 唤起app
  3. URL跳转空白页参数传递封装
  4. Java中的增强型for循环
  5. 21个实用便利的PHP代码
  6. linux下打包所有文件,包括隐藏文件到压缩包
  7. File常用的方法
  8. Docker的数据管理、网络通信和dockerfile
  9. python小白记录二 ——自动化测试selenium中配置浏览器
  10. logger模块和re模块总结