Shell编程实际应用

 一、脚本编程步骤

1. 需求分析
2. 命令测试
3. 脚本编程
4. 测试调优

二、案例分析

1.MAC记录与端口扫描

实验要求:
(1)统计网络中服务器MAC。
(2)检查哪些主机开启FTP。(21)(wget)($?)

netadd="192.168.10."
file="/opt/ethers"
[ -f $file ] && /bin/mv -f $file $file.bak
hostadd=100while [ $hostadd -le 107 ]
doping -c 2 -i 0.2 -W 2 ${netadd}${hostadd}
if [ $? -eq 0 ]
thenarp -n | grep ${netadd}${hostadd} | awk '{print $1,$3}'>>$file
fi
let hostadd++
done
echo "主机列表是:"
cat $file
echo "以下主机开启FTP"
target=$(awk '{print $1}' /opt/ethers)
for IP in $target
do
wget ftp://$IP &>/dev/null
if [ $? -eq 0 ]
thenecho $IPrm -rf index.*
fi
done

 备注:
 [root@localhost ~]# arp -n   (查看MAC地址)

2. 开发监控脚本

实验要求:
(1)CPU,内存,磁盘l利用率
(2)报警
(3)通过邮箱发送邮件

dug=$(df | grep "/$" | awk '{print $5}' | awk -F% '{print $1}')
cug=$(expr 100 - $(mpstat | tail -1 | awk '{print $12}' | awk -F. '{print $1}'))
mug=$(expr $(free | grep Mem | awk '{print $3}') \* 100 / $(free | grep Mem | awk '{print $2}'))
alog="/tmp/alert.txt"
amail="xxxxx@qq.com"
if [ $dug -gt 80 ]
thenecho "磁盘利用率:${dug}%">>$alog
fi
if [ $cug -gt 80 ]
thenecho "cug利用率:${cug}%">>$alog
fi
if [ $mug -gt 80 ]
thenecho "内存利用率:${mug}%">>$alog
fiif [ -f $alog ]
thencat $alog | mail -s "Host Alert" $amailrm -rf $alog
fi

 备注:
[root@localhost ~]# df     (查看磁盘利用率)
[root@localhost ~]# mpstat  (查看cpu)
[root@localhost ~]# free    (查看内存)
[root@localhost ~]# expr 235044 \* 100 / 3988652  (计算内存利用率,已使用内存空间*100 /总空)

[root@localhost ~]# yum -y install mailx
[root@localhost ~]# vim /etc/mail.rc 
set from=xxxxx@.com smtp=smtp.qq.com
set smtp-auth-user=xxxxx@qq.com smtp-auth-password=xxxx邮箱授权码
set smtp-auth=login

 备注:
set from=user@xxx.com               # 发信人邮箱
set smtp=smtps://smtp.xxx.com:465   #smtp地址
set smtp-auth=login                 # 认证方式
set smtp-auth-user=user@xxx.com     # 邮箱账号
set smtp-auth-password=password     # 邮箱授权码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/847142.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3状态管理,pinia的使用

​​​​​​​状态管理 我们知道组件与组件之间可以传递信息,那么我们就可以将一个信息作为组件的独立状态(例如,单个组件的颜色)或者共有状态(例如,多个组件是否显示)在组件之传递&#xff0c…

顺序表的讲解与实现

顺序表的讲解与实现 一、顺序表的概念及结构二、顺序表分类顺序表和数组的区别顺序表分类静态顺序表动态顺序表 三、动态顺序表的实现(使用VS2022)1.初始化、销毁、打印内容2.检查扩容3.尾部插入、尾部删除、头部插入、头部删除尾部插入尾部删除头部插入头部删除 4.指定插入、指…

C++ stack类与queue类

目录 0.前言 1.容器适配器 1.1容器适配器的特点 1.2容器适配器的实现 1.3使用容器适配器的场景 2.stack的介绍与使用 2.1介绍 2.2使用 3.queue的介绍与使用 3.1介绍 3.2使用 4.stack和queue的模拟实现 4.1 stack的模拟实现 4.2 queue的模拟实现 5.结语 &#xf…

博客星球大冒险:用Spring Boot和JWT打造你的数字王国

揭秘如何在Spring Boot中无缝集成JWT,为你的应用打造一个高度可扩展且安全的认证系统。从添加依赖到创建JWT过滤器,再到实现令牌的有效性管理和刷新机制,每一步都精心设计,确保你的乐园能够迎接成千上万的游客! 文章目…

Spark_SparkOnHive_海豚调度跑任务写入Hive表失败解决

背景 前段时间我在海豚上打包程序写hive出现了一个问题,spark程序向hive写数据时,报了如下bug, org.apache.spark.sql.AnalysisException: The format of the existing table test.xx is HiveFileFormat It doesnt match the specified for…

全球七家半导体工厂建设受阻:英特尔、三星、台积电等面临延期挑战

过去两年间,半导体行业经历了市场衰退、复苏慢于预期以及资金紧缩等问题,英特尔、台积电和三星等主要企业虽然继续推进扩张计划,但不断调整和放缓工厂建设的步伐与时间表,以更好地服务于长期发展目标。据统计,全球范围…

LLM主流开源代表模型

LLM主流开源大模型介绍 1 LLM主流大模型类别 随着ChatGPT迅速火爆,引发了大模型的时代变革,国内外各大公司也快速跟进生成式AI市场,近百款大模型发布及应用。 目前,市面上已经开源了各种类型的大语言模型,本章节我们…

【MATLAB源码-第220期】基于matlab的Massive-MIMO误码率随着接收天线变化仿真采用ZF均衡和QPSK调制。

操作环境: MATLAB 2022a 1、算法描述 1. 系统背景与目标 无线通信系统的发展极大地推动了现代通信技术的进步,从移动通信到无线局域网,甚至是物联网,均依赖于无线通信系统的高效和可靠性。在无线通信系统中,核心目…

【kafka】关于Kafka的入门介绍

为什么要使用kafka?kafka是什么东西? 案例场景 A服务向B服务发送消息,A服务传输数据很快,B服务处理数据很慢,这样B服务就会承受不住,怎么办?通过添加消息队列作为缓冲。kafka就是消息队列中的…

初识C++ · 模拟实现stack和Queue

目录 前言: 1 Stack 1.1 双端队列 2 Queue 前言: 经历了list三个自定义类型的洗礼,来个简单的放松放松,即栈和队列: 文档记录的,栈和队列是一种容器适配器,它们不属于stl,但是它…

进程间并发通信-IO多路复用

1 select 1.1 源码示例 /*************************************************************************> File Name: write.c> Author: yas> Mail: rage_yashotmail.com> Created Time: 2024年06月02日 星期日 14时50分23秒************************************…

低空经济发展报告

低空经济是指利用低空空间进行商业开发和经济活动的概念。随着航空技术的发展和无人机的普及,低空经济逐渐成为一个新兴的经济领域。 低空经济可以涵盖的领域非常广泛,包括但不限于物流配送、农业植保、城市交通、旅游观光等。利用无人机等飞行器进行物…

嵌入式学习——网络编程(TCP)——day31

1. TCP和UDP的区别 TCP(Transmission Control Protocol,传输控制协议) UDP(User Datagram Protocol,用户数据报协议) 1.1 连接方式 TCP 是面向连接的协议,它在数据传输前需要通过三次握手建立…

【算法】一文搞懂归并排序

概念 归并排序利用了分治思想,将待排序的数组范围层层划分,每次划分会得到两个大小相近的区间。当无法划分时,递归结束,自下而上进行区间合并merge操作,合并操作依次比较两个区间的元素,进而使合并后的区间…

【西瓜书】5.神经网络

1.概念 有监督学习正向传播:输入样本---输入层---各隐层---输出层反向传播:误差以某种形式在通过隐层向输入层逐层反转,并将误差分摊给各层的所有单元,以用于修正各层的权值激活函数:也叫阶跃函数,目的是引…

LeetCode:反转链表I

文章收录于LeetCode专栏 LeetCode地址 反转链表I 题目 给你单链表的头节点head,请你反转链表,并返回反转后的链表。   示例 1: #mermaid-svg-IYmD16EKuu3CZWwV {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size…

Maven 中的 classifier 属性用过没?

最近训练营有小伙伴问到松哥一个关于 Maven 依赖的问题,涉及到 classifier 属性,随机问了几个小伙伴,都说工作中没用到过,因此简单整篇文章和小伙伴们分享下。 Maven 大家日常开发应该都有使用,Maven 中有一个比较好玩…

最小二乘法算法(个人总结版)

最小二乘法(Least Squares Method)是一种通过最小化误差平方和来拟合数据的回归分析方法。它被广泛应用于线性回归、多元回归以及其他数据拟合问题中。以下是详细的教程,涵盖基本概念、数学推导、具体步骤和实现代码。 1. 最小二乘法基本概念…

代码随想录算法训练营第35天 |435.无重叠区间、763.划分字母区间、56.合并区间

代码随想录算法训练营第35天 |435.无重叠区间、763.划分字母区间、56.合并区间 自己看到题目的第一想法看完代码随想录之后的想法自己实现过程中遇到哪些困难 链接: 435.无重叠区间 链接: 763.划分字母区间 链接: 56.合并区间 自己看到题目的第一想法 435.无重叠区间:先对数组…

装机必备——鲁大师安装教程

装机必备——鲁大师安装教程 软件下载 软件名称:鲁大师 软件语言:简体中文 软件大小:144.75M系统要求:Windows7或更高, 32/64位操作系统 硬件要求:CPU2GHz ,RAM2G或更高 下载通道①迅雷云盘丨…