linux作业--第六周
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作业--第六周的更多相关文章
- Linux分析第六周——进程的描述和进程的创建
Linux分析第六周--进程的描述和进程的创建 李雪琦+原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/US ...
- 20135302魏静静——linux课程第六周实验及总结
linux课程第六周实验及总结 实验及学习总结 1.进程描述符task_struct数据结构 进程的作用: 将信号.进程间通信.内存管理和文件系统联系起来 操作系统的三大功能: 进程管理.内存管理.文 ...
- Linux内核分析作业第六周
创建新进程的过程 一.进程的描述 为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息. 1.进程控制块PCB——task_struct 操作系统的三大管理功能 进程 ...
- Linux入门-第六周
1.总结IP地址规划 IP地址的合理规划是网络设计中最重要的一环,在大型网络中必须对IP地址进行统一规划并得到实施.IP地址规划的好坏影响到网络路由协议算法的效率,影响到网络的性能,影响到网络的拓展, ...
- 团队作业第六周--alpha阶段项目复审
组名 优点 缺点 排名 天冷记得穿秋裤队 支持文件离线下载,没有限速 部分功能未实现 1 中午吃啥队 点餐系统需求高,系统功能完善 界面可以再完善 2 小谷围驻广东某工业719电竞大队 项目贴近大学生 ...
- linux作业--第八周
1.创建私有CA并进行证书申请. 配置文件存放路径 /etc/pki/tls/openssl.cnf [ CA_default ] dir = /etc/pki/CA # Where everythi ...
- linux作业--第五周
1.简述osi七层模型和TCP/IP五层模型 一.OSI参考模型 (1) OSI的来源 OSI(Open System Interconnect),即开放式系统互联. 一般都叫OSI参考模型,是ISO ...
- linux作业--第三周
1.统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来 [root@localhost ~]# cat /etc/passwd | grep ...
- linux作业--第十一周
1. 导入hellodb.sql生成数据库 (1) 在students表中,查询年龄大于25岁,且为男性的同学的名字和年龄 (2) 以ClassID为分组依据,显示每组的平均年龄 (3) 显示第2题中 ...
随机推荐
- 后缀自动机 (SAM)
后缀自动机 定义 定义 SAM 为一个有限状态自动机,接受且仅接受 \(S\) 的一个后缀. 同时,SAM 是这样的自动机中最小的那个,其中状态数至多为 \(2n - 1\),转移数至多为 \(3n ...
- AT2402 [ARC072D] Dam
首先我们可以将 \(t_i \times v_i\) 看作一个整体,不妨令 \(x_i = v_i, y_i = t_i \times v_i\) 这样两堆水混合后相当于将两个维度相加,方便了计算. ...
- Win10正式版屏幕一直闪烁怎么办
这个原因是由于两个账户都在线,一个账户更替到另一个账户时出现的 解决办法:先注销一个账户,再登录到另一个账户,即只保持一个账户在线,就不会出现屏幕闪烁的情况.
- c语言中数组的定义和java中数组定义的一些区别
感谢原文:https://blog.csdn.net/gzwdz778/article/details/79799408 一维情况下: c中,数组的声明需要给出数组的维数,比如: int arr[5] ...
- PHP页面编码问题
页面编码统一MySQL数据库编码.html页面编码.PHP或html文件本身编码要全部一致.1.MySQL数据库编码:建立数据库时指定编码(如gbk_chinese_ci),建立数据表.建立字段.插入 ...
- 关于Java多线程-interrupt()、interrupted()、isInterrupted()解释
多线程先明白一个术语"中断状态",中断状态为true,线程中断. interrupt():就是通知中止线程的,使"中断状态"为true. isInterrupt ...
- spring security中当已登录用户再次访问登录界面时,应跳转到home
@RequestMapping("/login") public String login(){ Authentication auth = SecurityContextHold ...
- 《PHP程序员面试笔试宝典》——如何回答算法设计问题?
如何巧妙地回答面试官的问题? 本文摘自<PHP程序员面试笔试宝典> 程序员面试中的很多算法设计问题,都是历年来各家企业的"炒现饭",不管求职者以前对算法知识掌握得是否扎 ...
- 微服务从代码到k8s部署应有尽有系列(二、网关)
我们用一个系列来讲解从需求到上线.从代码到k8s部署.从日志到监控等各个方面的微服务完整实践. 整个项目使用了go-zero开发的微服务,基本包含了go-zero以及相关go-zero作者开发的一些中 ...
- 通过shell脚本进行linux服务器的CPU和内存压测
文章目录 内存压测 python的方式 shell的方式 cpu压测 在正常手段下,这个只是压测的方法 在不正常手段下(crontab计划任务),可以提高CPU和内存的使用率 什么?你问我为什么要提高 ...