运维篇SHELL脚本实战案例

news2025/1/16 16:14:37

统计出每个IP的访问量有多少?

  1. 检查是否提供了日志文件的路径作为参数。
  2. 使用awk从日志文件的每行中提取第一个字段(假设这是IP地址)。
  3. 使用sort对提取的IP地址进行排序。
  4. 使用uniq -c统计每个唯一IP地址的出现次数。
  5. 最后,使用sort -nr按访问量从高到低进行排序。
root@service ~]# vim count_ips.sh
#!/bin/bash  
  
# 检查参数  
if [ "$#" -ne 1 ]; then
    echo "Usage: $0 <logfile>"  
    exit 1
fi

LOGFILE="$1"

# 使用awk统计每个IP的访问量,然后排序并输出  
awk '{print $1}' "$LOGFILE" | sort | uniq -c | sort -nr

[root@service ~]# chmod +x count_ips.sh
[root@service ~]# ./count_ips.sh /tmp/1.log
      1 192.168.142.148
      1 192.168.142.139
      1 192.168.140.121

生成磁盘使用情况的日志文件

在如下脚本中,你需要将/tmp/2.log替换为你想要保存日志文件的实际路径和名称。脚本首先获取当前时间,并将其与磁盘使用情况一起追加到日志文件中;同时,它还输出这些信息到终端上 。

[root@service tmp]# vim cipan.sh
#!/bin/bash  
  
# 定义日志文件的路径和名称  
LOG_FILE="/tmp/2.log"

# 使用df命令获取磁盘使用情况,并格式化输出  
DISK_USAGE=$(df -h)

# 将磁盘使用情况追加到日志文件中  
echo "$(date '+%Y-%m-%d %H:%M:%S') - Disk Usage:" >> "$LOG_FILE"
echo "$DISK_USAGE" >> "$LOG_FILE"
echo "--------------------------------------------------------" >> "$LOG_FILE"

echo "$(date '+%Y-%m-%d %H:%M:%S') - Disk Usage:"  
echo "$DISK_USAGE"  

# 完成提示  
echo "你的磁盘使用情况被记录到 $LOG_FILE"

可以查看CPU资源占用率的脚本文件

查看实时占用率

[root@service tmp]# vim cpu_show.sh
#!/bin/bash  
  
# 定义一个函数来显示CPU占用率  
show_cpu() {
    # 使用top命令获取CPU占用率信息,并只显示第一行(包含CPU占用率的部分)  
    top -bn1 | grep "Cpu(s)"
}

# 调用函数显示CPU占用率  
show_cpu
[root@service tmp]# bash cpu_show.sh 
%Cpu(s):  2.9 us,  2.9 sy,  0.0 ni, 94.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

top命令的-b选项表示批处理模式,-n1表示只更新一次。grep "Cpu(s)"用于过滤出包含CPU占用率信息的行。

查看一段时间内的CPU占用率

[root@service tmp]# vim cpu_show2.sh
#!/bin/bash  
  
# 定义一个函数来显示指定时间间隔的平均CPU占用率  
show_cpu_avg() {
    interval=$1
    mpstat -P ALL $interval 1 | tail -n +3
}

# 调用函数显示过去5秒的平均CPU占用率  
show_cpu_avg 5
[root@service tmp]# bash cpu_show2.sh 
20时31分14秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
20时31分19秒  all    0.10    2.16   24.64    5.26    0.82    1.03    0.00    0.00    0.00   65.98
20时31分19秒    0    0.20    1.21   23.43    8.89    0.81    1.21    0.00    0.00    0.00   64.24
20时31分19秒    1    0.00    3.16   25.89    1.47    0.84    0.84    0.00    0.00    0.00   67.79

平均时间:  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
平均时间:  all    0.10    2.16   24.64    5.26    0.82    1.03    0.00    0.00    0.00   65.98
平均时间:    0    0.20    1.21   23.43    8.89    0.81    1.21    0.00    0.00    0.00   64.24
平均时间:    1    0.00    3.16   25.89    1.47    0.84    0.84    0.00    0.00    0.00   67.79

mpstat -P ALL 5 1表示显示所有CPU核心的统计信息,每5秒更新一次,总共更新1次。tail -n +3用于跳过前两行标题信息。

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

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

相关文章

Python模块-基础知识

Python模块-基础知识 1.模块分类&#xff1a; &#xff08;1&#xff09;自定义模块&#xff1a; 如果你自己写一个py文件&#xff0c;在文件内写入一堆函数&#xff0c;则它被称为自定义模块&#xff0c;即使用python编写的.py文件 &#xff08;2&#xff09;第三方模块&…

从0到1:Java构建高并发、高可用分布式系统的实战经验分享

文章目录 引言基础架构选择与设计微服务架构分布式储存与计算 高并发处理策略异步处理与消息队列并发控制与资源隔离 高可用性设计与故障恢复冗余与集群化容错与自我修复监控与运维自动化 引言 随着互联网业务的快速发展和技术迭代升级&#xff0c;作为Java架构师&#xff0c;…

springboot企业级抽奖项目业务一(登录模块)

开发流程 该业务基于rouyi生成好了mapper和service的代码&#xff0c;现在需要在controller层写接口 实际操作流程&#xff1a; 看接口文档一>controller里定义函数一>看给出的工具类一>补全controller里的函数一>运行测试 接口文档 在登录模块有登录和登出方…

虚拟内存页表和内存保护

前言 大家好我是jiantaoyab&#xff0c;这是我所总结作为学习的笔记第21篇&#xff0c;在这里分享给大家&#xff0c;这篇文章讲虚拟内存和内存之间的页表和内存安全问题。 虚拟内存 前面的文章提到过&#xff0c;程序装载到内存的过程。可以知道&#xff0c;程序并不直接访…

爬虫实战-Python爬取百度当天热搜内容

爬虫实战-Python爬取百度当天热搜内容 学习建议学习目标预期内容目标分解热搜地址热搜标题热搜简介热搜指数小总结 代码实现总结 学习建议 本文仅用于学习使用&#xff0c;不做他用&#xff1b;本文仅获取页面的内容&#xff0c;作为学习和对Python知识的了解&#xff0c;不会…

如何使用Net2FTP+cpolar搭建专属文件共享站点并实现无公网IP远程访问——“cpolar内网穿透”

文章目录 1.前言2. Net2FTP网站搭建2.1. Net2FTP下载和安装2.2. Net2FTP网页测试 3. cpolar内网穿透3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 文件传输可以说是互联网最主要的应用之一&#xff0c;特别是智能设备的大面积使用&#xff0c;无论是个人…

MySQL高级学习笔记

1、MySQL架构组成 1.1 高级MySQL介绍 什么是DBA&#xff1f; 数据库管理员&#xff0c;英文是Database Administrator&#xff0c;简称DBA&#xff1b; 百度百科介绍 数据库管理员&#xff08;简称DBA&#xff09;&#xff0c;是从事管理和维护数据库管理系统&#xff08;D…

ISIS骨干网连续性简述

默认情况下&#xff0c; 一、L1路由器是ISIS 普通区域内部路由器&#xff0c;只能与L1和L1-2路由器建立邻接关系&#xff0c;不能与L2路由器建立邻接关系。 二、L2路由器是骨干区域的路由器&#xff0c;L2路由器只能与其他 L2路由器同处一个区域&#xff0c;可与本区域的L2路由…

分布式系统的基本特性

一般&#xff0c;分布式系统需要支持以下特性&#xff1a; 资源共享 开放性 并发性 可伸缩性 容错性 透明性 下面分别讨论。 容易理解的 资源共享 一旦授权&#xff0c;可以访问环境中的任何资源。 资源&#xff1a;包括硬件(e.g. printer, scanner, camera)、软件&a…

MYSQL 同步到ES 如何设计架构保持一致性

简单使用某个组件很容易&#xff0c;但是一旦要搬到生产上就要考虑各种各样的异常&#xff0c;保证你方案的可靠性&#xff0c;可恢复性就是我们需要思考的问题。今天来聊聊我们部门在 MYSQL 同步到ES的方案设计。 在面对复杂条件查询时&#xff0c;MYSQL往往显得力不从心&…

机器视觉学习(六)—— 图像的颜色识别

目录 一、色彩空间 1.1 RGB色彩空间 1.2 HSV色彩空间 1.3 灰度 1.4 CMYK色彩空间 1.5 Lab色彩空间 二、色彩空间转换 三、识别颜色 3.1 识别一种特定的颜色 3.2 识别多种颜色 一、色彩空间 计算机视觉中常用的色彩空间有RGB色彩空间、HSV色彩空间、CMYK色彩空间、La…

windows DCMTK编译使用(qt) 医学图像

由于项目需要生成DICOM格式的图片&#xff0c;需要使用到第三方开源库DCMTK&#xff0c;于是研究了一番&#xff0c;该库是C编写的&#xff0c;DICOM主要用于医疗体系中&#xff0c;除了可以保存图片信息外&#xff0c;还可以储存患者信息&#xff0c;病例信息&#xff0c;医疗…

如何修复WordPress网站媒体库上传文件失败的问题

公司最近推出了一系列新产品&#xff0c;为了更新网站的视频和图片&#xff0c;我们需要将它们上传至网站媒体库。然而&#xff0c;在上传视频时&#xff0c;我们却遇到了一些问题。系统提示说&#xff0c;我们尝试上传的视频文件大小超出了站点的最大上传限制。尽管我们的视频…

vue3中使用cesium

vue3中使用cesium Cesium是一个开源的JavaScript库&#xff0c;专门用于创建3D地球和2D地图的Web应用程序。它提供了丰富的功能和工具&#xff0c;使得开发人员能够轻松地构建出高质量的地理空间可视化应用。 1. 安装cesium包 npm install cesium2. 复制node_modules中的Ces…

Java IO流(超详细!)上篇

目录 一、File类1、操作文件和目录 二、I/O流概述1、按流向划分&#xff1a;输入流和输出流2、按处理单元划分&#xff1a;字节流和字符流3、按流的角色划分&#xff1a;节点流和处理流 三、字节流1、字节输出流基类&#xff1a;OutputStream2、字节输出流FileOutputStream类3、…

通过fail2ban服务监控frps日志实现禁止非法IP

前言 服务器使用了frp作为了内网穿透软件&#xff0c;查看frps的日志&#xff0c;发现总有一些国外的ip在扫描这台服务器的端口信息&#xff0c;日志如下图&#xff0c;所以想通过fail2ban服务能够直接禁用这些ip扫描服务器。 1、安装fail2ban服务 yum install -y fail2ban2、…

rpc详解rpc框架

文章目录 概述rpc的优点组件工作流程&RPC的底层原理RPC的底层原理 RPC框架rpc框架优点RPC 的实现基础RPC的应用场景RPC使用了哪些关键技术rpc 调用异常一般怎么处理rpc和http的区别为什么RPC要比HTTP更快一些Dubbo和openfeign 区别远程调用RPC框架传输协议传输速度 概述 在…

解决idea粘贴空格时显示NBSP的问题并且在Registry中找不到editor.show.special.chars

1、解决java 复制代码NBSP问题 参考文章 原因&#xff1a;2020.2版本以后无法找到以上的选项来解决问题&#xff1b;之后的版本这个选项换地方了 解决办法&#xff1a;在设置中找到Advanced Settings&#xff0c;把Render special characters前面的对勾取消掉就好了。

CTF-辨别细菌

题目描述&#xff1a;try your best to find the flag. 进入靶场后发现是一个游戏&#xff0c;需要全部答对才可以得到最后的flag 查看了一下源码&#xff0c;发现有一个答案模板的模块 尝试解释一下代码 <!-- 答案模版 --> <script id"template_game_pi…

HarmonyOS ArkTS 开发基础/语言

目录 一、ArkUI (方舟开发框架) 概述 1.1 基本概念 1.2 两种开发范式 1.3 不同应用类型支持的开发范式 二、ArkTS 声明式开发范式 2.1 开发能力 2.2 整体架构 三、ArkTS 基础类型 3.1 Any 类型 3.2 数字类型 3.3 字符串类型 3.4 布尔类型 3.5 联合类型 3.6 数组类…