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

linux作业--第六周的更多相关文章

  1. Linux分析第六周——进程的描述和进程的创建

    Linux分析第六周--进程的描述和进程的创建 李雪琦+原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/US ...

  2. 20135302魏静静——linux课程第六周实验及总结

    linux课程第六周实验及总结 实验及学习总结 1.进程描述符task_struct数据结构 进程的作用: 将信号.进程间通信.内存管理和文件系统联系起来 操作系统的三大功能: 进程管理.内存管理.文 ...

  3. Linux内核分析作业第六周

    创建新进程的过程 一.进程的描述 为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息. 1.进程控制块PCB——task_struct 操作系统的三大管理功能 进程 ...

  4. Linux入门-第六周

    1.总结IP地址规划 IP地址的合理规划是网络设计中最重要的一环,在大型网络中必须对IP地址进行统一规划并得到实施.IP地址规划的好坏影响到网络路由协议算法的效率,影响到网络的性能,影响到网络的拓展, ...

  5. 团队作业第六周--alpha阶段项目复审

    组名 优点 缺点 排名 天冷记得穿秋裤队 支持文件离线下载,没有限速 部分功能未实现 1 中午吃啥队 点餐系统需求高,系统功能完善 界面可以再完善 2 小谷围驻广东某工业719电竞大队 项目贴近大学生 ...

  6. linux作业--第八周

    1.创建私有CA并进行证书申请. 配置文件存放路径 /etc/pki/tls/openssl.cnf [ CA_default ] dir = /etc/pki/CA # Where everythi ...

  7. linux作业--第五周

    1.简述osi七层模型和TCP/IP五层模型 一.OSI参考模型 (1) OSI的来源 OSI(Open System Interconnect),即开放式系统互联. 一般都叫OSI参考模型,是ISO ...

  8. linux作业--第三周

    1.统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来 [root@localhost ~]# cat /etc/passwd | grep ...

  9. linux作业--第十一周

    1. 导入hellodb.sql生成数据库 (1) 在students表中,查询年龄大于25岁,且为男性的同学的名字和年龄 (2) 以ClassID为分组依据,显示每组的平均年龄 (3) 显示第2题中 ...

随机推荐

  1. 后缀自动机 (SAM)

    后缀自动机 定义 定义 SAM 为一个有限状态自动机,接受且仅接受 \(S\) 的一个后缀. 同时,SAM 是这样的自动机中最小的那个,其中状态数至多为 \(2n - 1\),转移数至多为 \(3n ...

  2. AT2402 [ARC072D] Dam

    首先我们可以将 \(t_i \times v_i\) 看作一个整体,不妨令 \(x_i = v_i, y_i = t_i \times v_i\) 这样两堆水混合后相当于将两个维度相加,方便了计算. ...

  3. Win10正式版屏幕一直闪烁怎么办

    这个原因是由于两个账户都在线,一个账户更替到另一个账户时出现的 解决办法:先注销一个账户,再登录到另一个账户,即只保持一个账户在线,就不会出现屏幕闪烁的情况.

  4. c语言中数组的定义和java中数组定义的一些区别

    感谢原文:https://blog.csdn.net/gzwdz778/article/details/79799408 一维情况下: c中,数组的声明需要给出数组的维数,比如: int arr[5] ...

  5. PHP页面编码问题

    页面编码统一MySQL数据库编码.html页面编码.PHP或html文件本身编码要全部一致.1.MySQL数据库编码:建立数据库时指定编码(如gbk_chinese_ci),建立数据表.建立字段.插入 ...

  6. 关于Java多线程-interrupt()、interrupted()、isInterrupted()解释

    多线程先明白一个术语"中断状态",中断状态为true,线程中断. interrupt():就是通知中止线程的,使"中断状态"为true. isInterrupt ...

  7. spring security中当已登录用户再次访问登录界面时,应跳转到home

    @RequestMapping("/login") public String login(){ Authentication auth = SecurityContextHold ...

  8. 《PHP程序员面试笔试宝典》——如何回答算法设计问题?

    如何巧妙地回答面试官的问题? 本文摘自<PHP程序员面试笔试宝典> 程序员面试中的很多算法设计问题,都是历年来各家企业的"炒现饭",不管求职者以前对算法知识掌握得是否扎 ...

  9. 微服务从代码到k8s部署应有尽有系列(二、网关)

    我们用一个系列来讲解从需求到上线.从代码到k8s部署.从日志到监控等各个方面的微服务完整实践. 整个项目使用了go-zero开发的微服务,基本包含了go-zero以及相关go-zero作者开发的一些中 ...

  10. 通过shell脚本进行linux服务器的CPU和内存压测

    文章目录 内存压测 python的方式 shell的方式 cpu压测 在正常手段下,这个只是压测的方法 在不正常手段下(crontab计划任务),可以提高CPU和内存的使用率 什么?你问我为什么要提高 ...