运维篇SHELL脚本实战案例

统计出每个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.mfbz.cn/a/475893.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java的类与对象

前言 Java是一门纯面向对象的语言(Object Oriented Program&#xff0c;简称OOP)&#xff0c;在面向对象的世界里&#xff0c;一切皆为对象。面向对象是解决问题的一种思想&#xff0c;主要依靠对象之间的交互完成一件事情。用面向对象的思想来涉及程序&#xff0c;更符合人们…

2024年【熔化焊接与热切割】模拟考试题库及熔化焊接与热切割实操考试视频

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 熔化焊接与热切割模拟考试题库参考答案及熔化焊接与热切割考试试题解析是安全生产模拟考试一点通题库老师及熔化焊接与热切割操作证已考过的学员汇总&#xff0c;相对有效帮助熔化焊接与热切割实操考试视频学员顺利通…

YOLOv9有效改进|CVPR2023即插即用的到残差注意力机制(轻量化注意力机制)Inverted Residual Mobile Block

专栏介绍&#xff1a;YOLOv9改进系列 | 包含深度学习最新创新&#xff0c;助力高效涨点&#xff01;&#xff01;&#xff01; 一、改进点介绍 在YOLOv9中加入CVPR2023即插即用的到残差注意力机制。 二、模块详解 2.1 模块简介 Inverted Residual Mobile Block结合了倒置残差块…

MySQL高级学习笔记

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

使用PLCSIM Advanced仿真博途运动控制

作者顾工首先&#xff0c;添加一个CPU&#xff0c;直接添加一个1518T&#xff0c;反正仿真&#xff0c;不用最好的干嘛呢。是吧。当然&#xff0c;你也可以添加一个你喜欢的PLC&#xff0c;这里不强求。 然后添加工艺对象&#xff0c;我们简单添加一个定位轴。 在工艺对象&am…

php laravel 二维码

public function qr($url,$name2,$inpath){require_once(dirname(__FILE__) . /../../../Library/phpqrcode/phpqrcode.php);$errorCorrectionLevel L;//容错级别$matrixPointSize 10;//生成图片大小$QRcode new \QRcode() ;$QRcode->png($url, $inpath.$name2, $errorCor…

参数化学习

因为parameters的参数不能和数据驱动类使用&#xff0c;会出现报错&#xff0c;可以使用before test/等参数

NCV6323BMTAATBG同步降压转换器芯片中文资料规格书PDF数据手册参数引脚图图片

产品概述&#xff1a; NCV6323 是一款同步降压转换器&#xff0c;用于使用一个锂电池或三个碱性/镍镉/镍氢电池供电的便携式应用的各种子系统。此类器件能够基于外部可调电压提供高达 2 A 的电流。使用 3 MHz 开关频率的运行允许采用小尺寸电感器和电容器。采用输入电源电压前…

Premiere模板|200个视频标题文字动画pr字幕模板包

Premiere模板&#xff0c;13个类别200个Pr视频标题字幕文字动画模板mogrt包。 几乎适用于任何场景。粗体标题&#xff0c;标注&#xff0c;未来主义和线条标题&#xff0c;下三分之一&#xff0c;霓虹灯&#xff0c;带数字的标题&#xff0c;倒计时&#xff0c;表格&#xff0c…

Spring Cloud Alibaba微服务从入门到进阶(七)(服务容错-Sentinel)

雪崩效应 我们把基础服务故障&#xff0c;导致上层服务故障&#xff0c;并且这个故障不断放大的过程&#xff0c;成为雪崩效应。 雪崩效应&#xff0c;往往是因为服务没有做好容错造成的。 微服务常见容错方案 仓壁模式 比如让controller有自己独立的线程池&#xff0c;线程池满…

海外舆情监控的重要性以及云手机的推荐

海外市场不仅有着无尽的商机&#xff0c;同时也存在着各种各样的挑战。例如&#xff0c;海外市场舆情的复杂变化给企业带来了潜在风险&#xff0c;尤其在新媒体技术快速发展的时代&#xff0c;舆论对企业品牌形象的影响日益巨大。本文将详细探讨海外舆情监控的重要性以及为大家…

jmeter接口测试教程及接口测试流程详解

一、Jmeter简介 Jmeter是由Apache公司开发的一个纯Java的开源项目&#xff0c;即可以用于做接口测试也可以用于做性能测试。 Jmeter具备高移植性&#xff0c;可以实现跨平台运行。 Jmeter可以实现分布式负载。 Jmeter采用多线程&#xff0c;允许通过多个线程并发取样或通过…

24.两数相加

给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这两个数都不会以 0 …

Java程序设计 3 选择

布尔数据类型和逻辑运算符 boolean类型的值为true和false&#xff0c;其字面值也只有true和false&#xff08;也就是不能等同视为0和非零&#xff0c;这一点和C/C有所不同&#xff09;&#xff0c;且不能和其他数据类型混合运算&#xff08;包括类型转换&#xff09;。 Java里面…

【leetcode】67.二进制求和

前言&#xff1a;剑指offer刷题系列 问题&#xff1a; 给你两个二进制字符串 a 和 b &#xff0c;以二进制字符串的形式返回它们的和。 示例&#xff1a; 输入&#xff1a;a "1010", b "1011" 输出&#xff1a;"10101"思路1&#xff1a; …

【面试题】HashMap为什么可以插入null而Hashtable就不可以(源码分析)

首先hashmap可以插入null值&#xff0c;但是hashtable和hashcurrentHashmap是不支持的&#xff1b;这是因为在 hashmap对插入key为null进行了特殊处理&#xff0c;当插入的值为null的时候会将哈希值设置为0 但是hashtable会直接抛出异常&#xff1a; 并且hashmap是线程不…

微信小程序选择器picker的使用(省市区)

index.wxml picker中的 moderegion模式&#xff0c;这里同element中的select不同的是&#xff0c;不需要自己在绑定数据原&#xff0c;默认就包含了省市区的整体数据 <view class"section"><view class"section__title">省市区选择器</vie…

13、Deconstructing Denoising Diffusion Models for Self-Supervised Learning

简介 研究了最初用于图像生成的去噪扩散模型(DDM)的表示学习能力 解构DDM&#xff0c;逐步将其转变为经典的去噪自动编码器(DAE) 探索现代ddm的各个组成部分如何影响自监督表征学习 结论&#xff1a; 只有很少的现代组件对于学习良好的表示是至关重要的&#xff0c;而其他许多…

2022年第13届蓝桥杯Java省赛B组-星期计算

一、题目 星期计算 【问题描述】 已知今天是星期六&#xff0c;请问 天后是星期几&#xff1f;注意用数字 1 到 7 表示星期一到星期日。 【答案提交】 这是一道结果填空的题&#xff0c;你只需要算出结果后提交即可。本题的结果为一个整数&#xff0c;在提交答案时只填写这个…

算法|基础算法|大数取余

基础算法|暴力 大数取余 心有猛虎&#xff0c;细嗅蔷薇。你好朋友&#xff0c;这里是锅巴的C\C学习笔记&#xff0c;常言道&#xff0c;不积跬步无以至千里&#xff0c;希望有朝一日我们积累的滴水可以击穿顽石。 大数取余 大数取余&#xff0c; 从字符串的首位开始&#xf…