【shell编程系统巡检项目】

目录

  • 系统巡检
  • 指标信息
      • 代码

系统巡检

所谓系统巡检就是就是定时检查系统的各项指标,与监控互补。

指标信息

1.基本信息:主机名,ip地址,公网ip,系统发行版本,内核版本,cpu架构
hostname
hostname -i
curl ifconfig.io
cat /etc/os-release
uname -r
uname -m
echo $LANG    系统的语言
lscpu中的Model name   cpu的型号,cpu的核数
top  cpu的使用情况,io,系统态,用户态2.系统信息:内存,swap,磁盘数量,磁盘大小,磁盘分区空间,分区状态,cpu颗数,核心数,空闲率,负载,用户及登录信息,可登录用户信息,sudo权限用户信息,系统dns及是否可用,yum仓库是否优化,selinux是否关闭,防火墙规则
free
lsblk/fdisk -l   磁盘个数3.服务信息:端口,进程,僵尸进程数量,后台挂起进程数量,开机自启动的服务,当前运行的服务ss -lntup   查看端口有哪些
top/ps aux   查看僵尸进程
systemctl list-unit-files   开启自启的服务
4.web服务:状态码,连接数,并发数ss -ant|排除LIsten即可  ---连接数
ss -ant|grep ESTABLE   ---并发数

代码

1.尽可能的使用函数
2.指标取出后存放到文件中,如csv

#!/bin/bash
#author:刚刚
file_save_path=~/sys_info
####生成结果文件函数####
res_file_process(){[ ! -d $file_save_path ] && {mkdir $file_save_path}
}####判断是否可以上公网####
sys_pub_check(){ping -c2 -i 0.01 www.baidu.com &>/dev/nullif [ $? -eq 0 ];thenif_has_pub_addr=2elseecho "没有公网"fiecho $if_has_pub_addr
}
####系统的基础指标检查####
sys_basic_check(){name="系统的基础指标"hostname=`hostname`ips=`hostname -I`kernel_version=`uname -r`source /etc/os-releaseissue_version=`echo $PRETTY_NAME`if [ $(sys_pub_check) -eq 2 ];thenpub_ip=`curl -s ipconfig.io`elsepub_ip="没有公有ip"filang=`echo $LANG`date=`date +%F_%T`res_file_processcat >> $file_save_path/$date.cvs <<EOF
$name,主机名,$hostname
$name,ip地址,$ips
$name,内核版本,$kernel_version
$name,发行版本,$issue_version
$name,公有ip,$pub_ip
$name,系统语言,$lang
EOFecho "$name检查完成"	
}
sys_cpu(){name="系统cpu信息"cpu_arch=`lscpu | grep Architecture |awk '{print $2}'`cpu_model=`lscpu | grep  "Model name:"| head -1 | awk -F: '{print $2}'|sed -r 's/[[:space:]]+//'`cpu_core=`lscpu | grep "^CPU(s):" | awk '{print $2}'`cpu_idel=`iostat | grep -A1 "avg-cpu" | tail -1 | awk '{print $NF}'`cpu_user=`iostat | grep -A1 "avg-cpu" | tail -1 | awk '{print $1}'`cpu_sys=`iostat | grep -A1 "avg-cpu" | tail -1 | awk '{print $3}'`cpu_iowait=`iostat | grep -A1 "avg-cpu" | tail -1 | awk '{print $4}'`cpu_load_1=`uptime | awk '{print $10}'|cut -d, -f1`cpu_load_5=`uptime | awk '{print $11}'|cut -d, -f1`cpu_load_15=`uptime | awk '{print $12}'|cut -d, -f1`cat >> $file_save_path/$date.cvs <<EOF
$name,cpu的架构,$cpu_arch
$name,cpu的型号,$cpu_model
$name,cpu的核数,$cpu_core
$name,cpu的空闲率,$cpu_idel
$name,cpu用户态使用率,$cpu_user
$name,cpu系统态使用率,$cpu_sys
$name,cpuio使用率,$cpu_iowait
$name,cpu过去一分钟的平均负载,$cpu_load_1
EOFecho "$name检查完成" 
}
sys_mem(){name="系统内存信息"mem_total=`free -h|awk 'NR==2{print $2}'`mem_free=`free -h|awk 'NR==2{print $NF}'`if [ `free |awk 'NR==3{print $2}'` -eq 0 ];thenecho -e "\033[31m没有交换分区\033[0m"if_has_swap=noelseif_has_swap=yesfiif [ $if_has_swap = "yes" ];thenmem_swap_total=`free -h |awk 'NR==3{print $2}'`cat >> $file_save_path/$date.cvs <<-EOF$name,交换分区总大小,$mem_swap_totalEOFficat >> $file_save_path/$date.cvs <<EOF
$name,内存的总量,$mem_total
$name,剩余内存,$mem_free
EOFecho "$name检查完成"}
sys_fdisk(){name="系统磁盘相关的信息"disk_count=`lsblk | grep disk | wc -l`disk_size=`lsblk | grep disk | awk -v OFS='----->' '{print $1,$4}'`	cat >> $file_save_path/$date.cvs <<EOF
$name,内存的总量,$disk_count
$name,剩余内存,$disk_size
EOFecho "$name检查完成"}
service_info(){name=`服务信息`selinux_status=`getenforce`firewall_status=`systemctl is-active firewalld.service`}
main(){sys_basic_checksys_cpusys_memsys_fdisk
}
main

总结:自动巡检项目就是根据你的需求编写相关的shell脚本,来定时检查系统有没有出现一些问题。

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

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

相关文章

SpringBoot项目创建及简单使用

目录 一.SpringBoot项目 1.1SpringBoot的介绍 1.2SpringBoot优点 二.SpringBoot项目的创建 三.注意点 一.SpringBoot项目 1.1SpringBoot的介绍 Spring是为了简化Java程序而开发的&#xff0c;那么SpringBoot则是为了简化Spring程序的。 Spring 框架&#xff1a; Spring…

【UKE!】2024.4.19

2024.4.19 【你知道的都是真相。只可惜那些并不是真相的全部。】 Friday 三月十一 谷雨 <BGM “谷雨–音阙诗听”> AC :Answer Coarse,粗劣的答案 ​ CE :Compile Easily,轻松通过 ​ PC :Perfect Compile 完美的编译 ​ WA :Wonderful Answer,好答案 ​ RE :Run Exce…

【InternLM 实战营第二期作业04】XTuner微调LLM:1.8B、多模态、Agent

基础作业 训练自己的小助手认知 1.环境安装 安装XTuner 源码 # 如果你是在 InternStudio 平台&#xff0c;则从本地 clone 一个已有 pytorch 的环境&#xff1a; # pytorch 2.0.1 py3.10_cuda11.7_cudnn8.5.0_0studio-conda xtuner0.1.17 # 如果你是在其他平台&#x…

区块链的应用场景及优势

区块链技术具有广泛的应用场景和众多的优势。 金融服务&#xff1a;区块链技术可以改善金融服务的效率与安全性。通过使用分布式账本&#xff0c;可以实现更快捷的支付和结算系统&#xff0c;减少交易的中介环节和成本。区块链还可以提供去中心化的借贷、投资和众筹平台&#x…

SpringSecurity源码分析3--UserDetail部分

前言&#xff1a;本章提及的类都是与用户名、密码相关的类 UserDetailsService.class 用于加载用户信息 DaoAuthenticationProvider.class 将数据库的信息拿出来进行认证 AbstractUserDetailsAuthenticationProvider.class DaoAuthenticationProvider的父类&#xff0c;通过模…

【FreeRTOS】RTOS任务的同步与互斥:(二)信号量

【FreeRTOS】RTOS任务的同步与互斥&#xff1a;&#xff08;二&#xff09;信号量 信号量概念二值信号量二值信号量概念二值信号量相关API函数二值信号量的案例设计cubeMX配置软件程序设计 计数型信号量计数型信号量概念计数型信号量相关API函数二值信号量的案例设计cubeMX配置…

VUE 页码分页封装

VUE 页码封装组件 pagination/index.vue &#xff1a; <template><div class"pagination-contianer"><el-pagination background layout"prev, pager, next" :total"total" current-change"currentChange"> </e…

点赞列表查询列表

点赞列表查询列表 BlogController GetMapping("/likes/{id}") public Result queryBlogLikes(PathVariable("id") Long id) {return blogService.queryBlogLikes(id); }BlogService Override public Result queryBlogLikes(Long id) {String key BLOG_…

零基础小白如何自学网络安全(入门)

一、为什么选择网络安全&#xff1f; 这几年随着我国《国家网络空间安全战略》《网络安全法》《网络安全等级保护2.0》等一系列政策/法规/标准的持续落地&#xff0c;网络安全行业地位、薪资随之水涨船高。 未来3-5年&#xff0c;是安全行业的黄金发展期&#xff0c;提前踏入…

从数据库中到处所有表的列、注释、类型、是否必填等信息

从数据库中到处所有中文表名、英文表名、所有列、注释、类型、长度、是否必填等信息&#xff0c;效果如下&#xff1a; 要实现上面的表格可以直接用SQL实现&#xff0c;实现SQL如下&#xff1a; #查询SQL select* FROMinformation_schema.COLUMNS as columns left join (sele…

【Jenkins PipeLine】Jenkins PipeLine 联动参数示例

目录 1. Pipeline script&#xff1a; 1.1.代码说明&#xff1a; 2. 实现效果&#xff1a; 3.联动说明&#xff1a; 4.Jenkins安装插件 1. Pipeline script&#xff1a; properties([parameters([[$class: "ChoiceParameter", choiceType: "PT_SINGLE_SELE…

在mini2440上编写linux应用程序、字符设备驱动程序的编写与编译

在mini2440上编写linux应用程序 结合前两篇的学习&#xff0c;一个linux操作系统已经在mini2440上运行起来了&#xff0c;结合交叉编译环境和nfs等工具&#xff0c;我们可以在mini2440上编写任何我们在linux系统编程中学到的应用程序。一个简要的多文件Makefile文件如下&#…

数组*巴巴拉拉

一&#xff0c;数组的定义以及创建方式 数组的作用&#xff1a;数组可以把一组数据的集合存放在单个变量下 创建数组有两种方式&#xff1a; 1.利用new创建数组 var arr new Array() 2.利用数组字面量创建数组(常用) var arr [] 注意点&#xff1a;数组里可以存放任…

C++笔记2:基类的静态变量子类能共享吗

C里&#xff0c;基类的静态变量子类能共享吗&#xff0c;为了验证这个问题这里写了一段代码进行测试&#xff1a; #include <iostream>class Base { public:static int staticVariable; };class Derived : public Base { };int Base::staticVariable 10;int main() {Ba…

2013–2022年福建漳江口互花米草分布无人机遥感数据集

文章目录 摘要数据集内容数据集命名方式数据引用与参考文献引用 摘要 本数据集利用无人机搭载可见光相机&#xff0c;获取福建漳江口湿地2013-2022年期间的航拍影像&#xff0c;通过影像拼接生成整个研究区的正射影像&#xff0c;制作十年尺度的遥感影像数据集及互花米草空间数…

Vue-条件渲染(初识vue渲染)

目录 一、Vue条件渲染-介绍 1.概念 2.特点 3.功能 4.好处 5.应用 二、Vue条件渲染-使用 1.初识渲染 2.条件v-if的使用 3.条件v-if-else的使用 4.条件v-else-if使用 5.template元素使用 6.条件渲染-阶段案例 7.条件v-show 三、Vue条件渲染-实例 1.权限管理系统 …

数据结构:查找与排序

注&#xff1a;以下代码均为C 查找 一、线性表的查找 1. 顺序查找 int search_seq(vector<int> s, int key){for(int i 0; i < s.size(); i){if(s[i] key)return i;}return -1; }2. 折半查找 (1)非递归&#xff1a;循环 int search_bin1(vector<int> s,…

C++初阶学习第一弹——C++入门(上)

前言&#xff1a; 很高兴&#xff0c;从今天开始&#xff0c;我们就要步入C的学习了&#xff0c;在这之前我们已经对C语言有了不错的了解&#xff0c;对数据结构也有了一些自己的认识&#xff0c;今天开始&#xff0c;我们就进入这个新的主题的学习——C 目录 一、C的发展即其特…

一个快速克隆方法引出深浅拷贝说明

提供的代码是一个泛型扩展方法&#xff0c;用于对任意类型的对象T进行浅拷贝&#xff08;shallow copy&#xff09;。这个方法使用反射来调用对象的MemberwiseClone方法&#xff0c;该方法为所有字段&#xff08;包括值类型和引用类型字段&#xff09;创建新的副本&#xff0c;…

解析OceanBase v4.2函数索引进行查询优化

一、如何通过函数索引来进行查询优化 函数索引是一种优化查询的技术&#xff0c;其主要作用在于提升包含函数调用的查询语句的执行速度。当查询语句中包含函数调用时&#xff0c;数据库系统需要逐行执行函数计算&#xff0c;这无疑会增加查询的复杂性&#xff0c;导致查询速度…