当前位置: 首页 > news >正文

shell 简单且常用的几种

目录

一、配置环境的shell脚本

 二、系统资源脚本

一、要求

二、脚本内容

三、脚本解析

四、赋权并验证

三、查看当前内存的总大小、实际使用大小、剩余大小、显示使用率百分比的脚本

一、第一种方法

二、验证

三、第二种方法

四、验证

四、查看网卡实时流量脚本

一、编辑脚本

 二、验证结果

五、把当前目录(包含子目录)下所有后缀为 ".sh" 的文件后缀变更为 ".shell",之后删除每个文件的第二行。

一、编写脚本

二、验证

六、统计访问最多的十个IP

一、首先模拟创建IP、编写脚本

二、验证ip生成结果


一、配置环境的shell脚本

systemctl stop firewalld

systemctl disable firewalld

systemctl stop NetworkManager

systemctl disable NetworkManager

setenforce 0

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

cat << e > /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet

BOOTPROTO=static

NAME=ens33

DEVICE=ens33

ONBOOT=yes

IPADDR=$1

PREFIX=24

GATEWAY=192.168.115.2

DNS1=192.168.115.2

e

systemctl restart network

 将此脚本放入终端中,后续输入想设置的IP 则成功配置环境并设置ip 

 结果查看

 二、系统资源脚本

一、要求

1. 编写一个脚本来监控 CPU 使用率、内存使用率、磁盘空间等系统资源。
2. 实时显示系统资源的使用情况,并根据预设的阈值提供警报功能。
3. 脚本应该可以在后台运行,每隔一定时间自动更新资源状态。
4. 提供一个简单的用户界面(命令行或图形界面),方便用户查看当前系统资源的情况。

二、脚本内容

#!/bin/bash
#lsq
#监测脚本
while true
do
times=10
#磁盘
disk=$(df -Th | awk '{ print $6 }' | awk 'NR==6' |cut -d "%" -f 1)
#内存
mem=$(free -m | grep "Mem" | awk '{ printf "%.0f", $3/$2 * 100 }')
#cpu
cpu=$(top -n 1 | grep "Cpu(s)" | awk '{ printf "%.0f", $2+$4 }')
#显示监测情况:
        echo "******************"
        echo "CPU使用率$cpu %"
        echo "内存使用率$mem %"
        echo "磁盘使用率$disk %"
        echo "******************"
#——————————————————————————————————
disk1=80
mem1=80
cpu1=80
if [ "$mem" -ge "$mem1" ];then
        echo "内存使用已到$mem %,请注意" && exit 0
fi
if [ $cpu -ge $cpu1 ];then
        echo "CPU使用已到$cpu %,请注意" && exit 0
fi
if [ $disk -ge $disk1 ];then
        echo "磁盘使用已到$disk ,请注意" && exit 0
fi
sleep $times
done

三、脚本解析

这是一个监测脚本,用于监测系统的磁盘、内存和CPU使用率。下面是对脚本中各部分的解析:

  1. #!/bin/bash:指定脚本采用Bash解释器。

  2. #mpy:注释,用于说明脚本的用途。

  3. while true:一个无限循环,表示脚本会一直执行下去。

  4. dotimes=10:设置一个变量dotimes的值为10。

  5. disk=$(df -Th | awk '{ print $6 }' | awk 'NR==6' |cut -d "%" -f 1):使用df命令获取磁盘信息,并使用awk和cut命令提取出磁盘使用率的数值部分。

  6. mem=$(free -m | grep "Mem" | awk '{ printf "%.0f", $3/$2 * 100 }'):使用free命令获取内存信息,再使用awk命令计算内存使用率百分比。

  7. cpu=$(top -n 1 | grep "Cpu(s)" | awk '{ printf "%.0f", $2+$4 }'):使用top命令获取CPU信息,并使用awk命令计算CPU使用率百分比。

  8. echo "******************":打印分隔线。

  9. echo "CPU使用率$cpu %":打印CPU使用率。

  10. echo "内存使用率$mem %":打印内存使用率。

  11. echo "磁盘使用率$disk %":打印磁盘使用率。

  12. echo "******************":打印分隔线。

  13. disk1=80:设置一个变量disk1的值为80,表示磁盘使用率的阈值。

  14. mem1=80:设置一个变量mem1的值为80,表示内存使用率的阈值。

  15. cpu1=80:设置一个变量cpu1的值为80,表示CPU使用率的阈值。

  16. if [ "$mem" -ge "$mem1" ]; then:如果内存使用率大于等于阈值mem1,则执行下面的命令。

  17. echo "内存使用已到$mem %,请注意" && exit 0:打印内存使用率达到阈值的警告信息,并退出脚本。

  18. if [ $cpu -ge $cpu1 ]; then:如果CPU使用率大于等于阈值cpu1,则执行下面的命令。

  19. echo "CPU使用已到$cpu %,请注意" && exit 0:打印CPU使用率达到阈值的警告信息,并退出脚本。

  20. if [ $disk -ge $disk1 ]; then:如果磁盘使用率大于等于阈值disk1,则执行下面的命令。

  21. echo "磁盘使用已到$disk ,请注意" && exit 0:打印磁盘使用率达到阈值的警告信息,并退出脚本。

  22. sleep $times:暂停脚本执行一段时间,时间长度由变量times指定。

  23. done:结束while循环。

 

四、赋权并验证

三、查看当前内存的总大小、实际使用大小、剩余大小、显示使用率百分比的脚本

一、第一种方法

#!/bin/bash

Mem_all=$(free -m | awk '/Mem/ {print $2}')
Mem_used=$(free -m | awk '/Mem/ {print $3}')
Mem_free=$(free -m | awk '/Mem/ {print $4}')
Mem_usage=$(free -m | awk '/Mem/ {printf "%.0f", $3/$2 * 100}')

echo "当前内存总共: $Mem_all MB"
echo "当前内存已使用: $Mem_used MB"
echo "当前剩余: $Mem_free MB"
echo "当前物理内存使用率: $Mem_usage%" 

 

二、验证

三、第二种方法

#!/bin/bash

# 获取内存信息
mem_info=$(free -m | awk 'NR==2{print}')

# 获取内存总量、已使用量和剩余量(以兆字节为单位)
total=$(echo $mem_info | awk '{print $2}')
used=$(echo $mem_info | awk '{print $3}')
free=$(echo $mem_info | awk '{print $4}')

# 计算内存使用率
usage_percent=$(echo "scale=2; $used / $total * 100" | bc)

# 打印信息
echo "物理内存总量:${total}MB"
echo "已使用内存:${used}MB"
echo "剩余内存:${free}MB"
echo "内存使用率:${usage_percent}%"

四、验证

四、查看网卡实时流量脚本

一、编辑脚本

#!/bin/bash
NIC=ens33
echo -e " In ------ Out"
while true; do
        OLD_IN=$(awk '$0~"'$NIC'"{print $2}' /proc/net/dev)
        OLD_OUT=$(awk '$0~"'$NIC'"{print $10}' /proc/net/dev)
sleep 1
        NEW_IN=$(awk '$0~"'$NIC'"{print $2}' /proc/net/dev)
        NEW_OUT=$(awk '$0~"'$NIC'"{print $10}' /proc/net/dev)
        IN=$(printf "%.1f%s" "$((($NEW_IN-$OLD_IN)/1024))" "KB/s")
        OUT=$(printf "%.1f%s" "$((($NEW_OUT-$OLD_OUT)/1024))" "KB/s")
        echo "$IN $OUT"
        sleep 1
done


 二、验证结果

五、把当前目录(包含子目录)下所有后缀为 ".sh" 的文件后缀变更为 ".shell",之后删除每个文件的第二行。

先查看目录下的后缀文件

一、编写脚本

 #!/bin/bash

ALL_SH_FILE=$(find . -type f -name "*.sh")

        for file in ${ALL_SH_FILE[*]}

do

        filename=$(echo $file | awk -F'.sh' '{print $1}')

        new_filename="${filename}.shell"

        mv "$file" "$new_filename"

        sed -i '2d' "$new_filename"

done

二、验证

六、统计访问最多的十个IP

一、首先模拟创建IP、编写脚本

vim /makeiplog.sh

#!/bin/bash
for i in {1..30};do
        host=$[$RANDOM % 10]
        host1=$[$RANDOM % 10]

        echo "192.168.$host1.$host" >> /root/ip.log
done

 

赋权并启动

二、验证ip生成结果

 输入 vim ip.log 查看

输入命令 

awk '{a[$1]++}END{print "UV:",length(a);for(v in a)print v,a[v]}' ip.log |sort -k2 -nr |head -10

 显示结果

 

awk '{a[$1]++}END{print "UV:",length(a);for(v in a)print v,a[v]}' ip.log |sort -k2

升序显示

 

相关文章:

shell 简单且常用的几种

目录 一、配置环境的shell脚本 二、系统资源脚本 一、要求 二、脚本内容 三、脚本解析 四、赋权并验证 三、查看当前内存的总大小、实际使用大小、剩余大小、显示使用率百分比的脚本 一、第一种方法 二、验证 三、第二种方法 四、验证 四、查看网卡实时流量脚本 一…...

redis基本介绍以及在node中使用

文章目录 引言一、什么是redis1. redis简介2. redis的特点3. redis的应用场景 二、redis在windows下安装1. 下载安装2.验证是否安装成功3. 配置环境变量 三、redis-cli常用命令介绍1. redis-cli2. keys *3. set key value4. get key5. exists key6. del key7. info8. flushdb9.…...

React Native 文本输入基础知识

在 React Native 中提供了一个文本输入组件TextInput。此组件主要是监听键盘输入事件&#xff0c;并把对应的输入值显示在组件中&#xff0c;此组件还提供了很多功能配置参数&#xff0c;例如自动更正、自动大写、占位符文本和不同的键盘类型&#xff08;例如数字键盘&#xff…...

qt显示图片并转换成灰度图及伪彩图

写了个程序&#xff0c;可在途图片&#xff0c;并切换成灰度图及伪彩图显示&#xff0c;主要代码如下&#xff1a; #include "mainwindow.h" #include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainW…...

oj在线编程输入输出

练习地址&#xff1a;校招笔试真题_C工程师、golang工程师_牛客网 1.读取多行内容 输入描述&#xff1a; 输入包括两个正整数a,b(1 < a, b < 1000),输入数据包括多组。 输出描述&#xff1a; 输出ab的结果输入例子&#xff1a; 1 5 10 20 输出例子&#xff1a; 6 30imp…...

【LeetCode 算法】Add Two Integers 两整数相加-位运算

文章目录 Add Two Integers 两整数相加问题描述&#xff1a;分析代码递归 Tag Add Two Integers 两整数相加 问题描述&#xff1a; 给你两个整数 num1 和 num2&#xff0c;返回这两个整数的和。 − 100 < n u m 1 , n u m 2 < 100 -100 < num1, num2 < 100 −1…...

企业网络日志安全与 EventLog Analyzer

企业的网络日志安全是一项至关重要的任务。随着信息技术的迅猛发展&#xff0c;网络攻击和数据泄露的威胁也与日俱增。为了应对这些威胁&#xff0c;企业需要强大的工具来监控、分析和保护其网络日志。而ManageEngine的EventLog Analyzer正是这样一款卓越的解决方案。 网络日志…...

清风数学建模——拟合算法

拟合算法 文章目录 拟合算法概念 确定拟合曲线最小二乘法的几何解释求解最小二乘法matlab求解最小二乘法如何评价拟合的好坏计算拟合优度的代码 概念 在前面的篇幅中提到可以使用插值算法&#xff0c;通过给定的样本点推算出一定的曲线从而推算出一些想要的值。但存在一些问题…...

单片机 (一) 让LED灯 亮

一&#xff1a;硬件电路图 二&#xff1a;软件代码 #include "reg52.h"#define LED_PORT P2void main() {LED_PORT 0x01; // 0000 0001 D1 是灭的 } #include "reg52.h" 这个头文件的作用&#xff1a;包含52 系列单片机内部所有的功能寄存器 三&#…...

c++——单例模式

c单例模式 1、概念&#xff1a; 单例模式确保一个类只有一个实例&#xff0c;并提供一个全局访问点以获取该实例。这通常通过让类的构造函数为私有&#xff0c;以防止外部直接实例化&#xff0c;然后提供一个静态方法来获取实例。 2、实现方法&#xff1a; 实现单例模式的主…...

C# 流Stream详解(2)——FileStream、BinaryReader、MemorySream、SreamReader等之间的关系

【文件流】 电脑上的文件有很多&#xff0c;文本文件、音频文件、视频文件、图片文件等&#xff0c;这些文件会被持久化存储在磁盘上&#xff0c;其本质都是一堆二进制数据。 FileStream用于读取二进制文件。电脑上的所有文件&#xff0c;不管是文本、音频、视频还是其他任意…...

【JavaSE】详解final关键字

在Java中&#xff0c;final可以用来修饰类、方法和变量。final修饰类&#xff0c;表示该类无法被继承&#xff0c;并且此类的设计已被认为很完美而不需要进行修改或扩展。final修饰类中的方法&#xff0c;表示不可以被重写&#xff1b;也就是把该方法锁定了&#xff0c;以防止继…...

问道管理:机器人概念走势活跃,新时达涨停,拓斯达、丰立智能等大涨

机器人概念17日盘中走势活跃&#xff0c;到发稿&#xff0c;拓斯达大涨18%&#xff0c;昊志机电涨近16%&#xff0c;丰立智能涨超13%&#xff0c;步科股份、优德精细涨超10%&#xff0c;新时达涨停&#xff0c;天玑科技、兆龙互联、中大力德涨逾9%。 消息面上&#xff0c;8月16…...

elementui 修改日期选择器el-date-picker样式

1. 案例&#xff1a; 2. css /* 最外层颜色 */ .el-popper.is-pure {background: url("/assets/imgList/memuBG.png") no-repeat;border: none;background-size:100% 100%}/* 日期 1.背景透明 */ .el-date-picker{background: transparent; }/* 日期 2.标题、左右图…...

自己实现 SpringMVC 底层机制 系列之-实现任务阶段 6-完成控制器方法获取参数-@RequestParam

&#x1f600;前言 自己实现 SpringMVC 底层机制 系列之-实现任务阶段 6-完成控制器方法获取参数-RequestParam &#x1f3e0;个人主页&#xff1a;尘觉主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是尘觉&#xff0c;希望我的文章可以帮助到大家&#xff0c…...

数据可视化:图表绘制详解

数据可视化是一种将抽象的数字和数据转化为直观图形的技术&#xff0c;使数据的模式、趋势和关系一目了然。本文将详细介绍如何绘制各种类型的图表&#xff0c;包括柱状图、折线图、饼图、散点图和热力图等。 第一部分&#xff1a;图表类型和选择 1. 柱状图 柱状图是用于比较类…...

【中危】Apache Ivy<2.5.2 存在XXE漏洞 (CVE-2022-46751)

漏洞描述 Apache Ivy 是一个管理基于 ANT 项目依赖关系的开源工具&#xff0c;文档类型定义(DTD)是一种文档类型定义语言,它用于定义XML文档中所包含的元素以及元素之间的关系。 Apache Ivy 2.5.2之前版本中&#xff0c;当解析自身配置、Ivy 文件或 Apache Maven 的 POM 文件…...

C#使用自定义的比较器对版本号(编码)字符串进行排序

给定一些数据&#xff0c;如下所示: “1.10.1.1.1.2”, “1.1”, “2.2”, “1.1.1.1”, “1.1.3.1”, “1.1.1”, “2.10.1.1.1”, “1.1.2.1”, “1.2.1.1”, “2.5.1.1”, “1.10.1.1”, “1.10.2.1”, “1.11.3.1”, “1.11.12.1”, “1.11.11.1”, “1.11.3.1”, “1”, “…...

AI在日常生活中的应用:从语音助手到自动驾驶

文章目录 AI的定义和发展AI在日常生活中的应用1. **智能语音助手**2. **智能家居**3. **智能医疗**4. **自动驾驶** 代码示例&#xff1a;使用Python实现基于机器学习的图片分类AI的未来前景结论 &#x1f389;欢迎来到AIGC人工智能专栏~探索AI在日常生活中的应用 ☆* o(≧▽≦…...

Windows10查看图片的分辨率

文章目录 查看方法 查看方法 鼠标悬停在想查看分辨率大小的图片上&#xff0c;稍等那么零点几秒&#xff0c;就会弹出图片的分辨率信息&#xff0c;如图所示&#xff1a;...

Spring事务和事务传播机制(2)

前言&#x1f36d; ❤️❤️❤️SSM专栏更新中&#xff0c;各位大佬觉得写得不错&#xff0c;支持一下&#xff0c;感谢了&#xff01;❤️❤️❤️ Spring Spring MVC MyBatis_冷兮雪的博客-CSDN博客 在Spring框架中&#xff0c;事务管理是一种用于维护数据库操作的一致性和…...

计算机视觉 -- 图像分割

文章目录 1. 图像分割2. FCN2.1 语义分割– FCN &#xff08;Fully Convolutional Networks&#xff09;2.2 FCN--deconv2.3 Unpool2.4 拓展–DeconvNet 3. 实例分割3.1 实例分割--Mask R-CNN3.2 Mask R-CNN3.3 Faster R-CNN与 Mask R-CNN3.4 Mask R-CNN&#xff1a;Resnet1013…...

ubuntu18.04复现yolo v8之CUDA与pytorch版本问题以及多CUDA版本安装及切换

最近在复现yolo v8的程序&#xff0c;特记录一下过程 环境&#xff1a;ubuntu18.04ros melodic 小知识&#xff1a;GPU并行计算能力高于CPU—B站UP主说的 Ubuntu可以安装多个版本的CUDA。如果某个程序的Pyorch需要不同版本的CUDA&#xff0c;不必删除之前的CUDA&#xff0c;…...

Redis三种模式——主从复制,哨兵模式,集群

目录 一、主从复制 1.1主从复制的概念 1.2Redis主从复制作用 1.2.1数据冗余 1.2.2故障恢复 1.2.3负载均衡 1.2.4高可用基石 1.3Redis主从复制流程 1.4部署Redis 主从复制 1.4.1.环境部署 1.4.2.所有服务器都先关闭防火墙 1.4.3.所有服务器都安装Redis 1.4.4修改Master主节点R…...

mysql8.0.31新增只读远程普通用户

在 MySQL 8.0.31 中&#xff0c;可以通过以下步骤新增只读远程普通用户&#xff1a; 1、使用 root 用户登录 MySQL 数据库。 mysql -u root -p 2、创建用户&#xff1a; CREATE USER username% IDENTIFIED WITH mysql_native_password BY password ; 其中&#xff0c;username…...

揭开路由协议隐藏的风险

路由协议在互联网和基于其的服务的运行中发挥着至关重要的作用。然而&#xff0c;许多这些协议的开发都没有考虑到安全问题。 例如&#xff0c;边界网关协议 (BGP) 最初并未考虑对等点之间发生攻击的可能性。过去几十年来&#xff0c;BGP 中的起源和路径验证已投入了大量工作。…...

图片因固定宽高被拉伸了?object-fit:一个神奇的属性

一、问题产生的场景 近期在完成项目开发时&#xff0c;测试人员针对漫画长图上传后的展示提出了一个界面优化的点&#xff0c;因为其特点是长&#xff0c;但是我们展示图片的区域是固定的&#xff0c;如果我们按照正常思路将图片的宽高写死&#xff0c;确实占位大小的问题解决了…...

客户案例:中圣科技—CAC2.0防范盗号威胁,加固安全防线

客户背景 中圣科技&#xff08;江苏&#xff09;股份有限公司&#xff08;以下简称“中圣科技”&#xff09;&#xff0c;是一家以技术研发为驱动&#xff0c;以清洁能源核心成套装备和节能环保工程服务为支撑的科技创新型企业。其以南京为核心运营基地&#xff0c;与当地政府…...

pandas数据分析40——读取 excel 合并单元格的表头

案例背景 真的很容易疯....上班的单位的表格都是不同的人做的&#xff0c;所以就会出现各种合并单元格的情况&#xff0c;要知道我们用pandas读取数据最怕合并单元格了&#xff0c;因为没规律...可能前几列没合并&#xff0c;后面几列又合并了....而且pandas对于索引很严格&am…...

Java后端开发面试题——微服务篇总结

Spring Cloud 5大组件有哪些&#xff1f; 随着SpringCloudAlibba在国内兴起 , 我们项目中使用了一些阿里巴巴的组件 注册中心/配置中心 Nacos 负载均衡 Ribbon 服务调用 Feign 服务保护 sentinel 服务网关 Gateway Ribbon负载均衡策略有哪些 ? RoundRobinRule&…...

做网站电话/百度关键词排名突然没了

之前我一直用Seconds_behind_master来衡量主从的延迟&#xff0c;今天看到文档&#xff0c;才觉得多么不可靠&#xff01;以下是官方文档的描述&#xff1a; In essence, this field measures the time difference in seconds between the slave SQL thread and the slave I/O …...

专业做网站服务/windows优化大师会员

如何实现富文本文字链接完全自定义效果图实现UITextView 的配置链接点击事件重定向效果图 环境&#xff1a;XCode12.3 - IOS14.3 语言&#xff1a;Objective-C 副标题为富文本实现的文字链接 实现 带链接的富文本只能使用 UITextView&#xff0c;使用 UILabel 无法完全自定…...

广东网站制作哪家强/外贸网站搭建推广

SSM养老院信息管理系统摘 要随着互联网趋势的到来&#xff0c;各行各业都在考虑利用互联网将自己推广出去&#xff0c;最好方式就是建立自己的互联网系统&#xff0c;并对其进行维护和管理。在现实运用中&#xff0c;应用软件的工作规则和开发步骤&#xff0c;采用Java技术建设…...

沽源网站建设案例/西安seo服务

作者按&#xff1a;7月28日周日下午&#xff0c;在TDengine物联网大数据平台开源两周后&#xff0c;涛思数据联合CSDN举办了「TDengine 和他的小伙伴们」Beijing Meetup活动。活动后&#xff0c;我应CSDN邀约&#xff0c;撰写此文&#xff0c;讲述了我开发TDengine的新路历程&a…...

网站上的广告怎么做/seo是什么东西

最近在做一个微信分享的功能&#xff0c;分享到朋友圈还有微信好友的时候&#xff0c;图片成回形针状&#xff0c;自定义的图片显示不出来&#xff0c;为此折腾了好久&#xff0c;如下图所示 经过重重排查&#xff0c;发现是图片路劲的问题&#xff0c;之前是放到/assets/img/…...

wordpress 乱码/推广软文300字范文

硬件系统设计硬件平台基于ARM920T的处理器AT91RM9200&#xff0c;该处理器不仅有丰富的片上资源和标准接口&#xff0c;而且有低功耗、低成本、高性能、支持多种主要的嵌入式操作系统等特点&#xff0c;其采用5级整数流水线结构&#xff0c;性能高达200此方案的硬件系统结构设计…...