[脚本实例]——统计系统信息脚本

#!/bin/bash
#title:统计系统信息
#author:Jelly_lyj
#date:2016-08-05
#version:V0.01
#other:此脚本仅用于Linux系统的系统信息统计

#=====================================================
#Fuction System_info()-->收集和输出 系统|硬件相关信息
#=====================================================
System_info()
{
#显示系统版本号
  System_version=`cat /etc/redhat-release |awk ‘{print $1,$2,$7}‘`
#内核版本
  System_kernel=`uname -r`
#系统物理cpu个数和各个cpu有几个核
  Sytem_cpu=`cat /proc/cpuinfo | grep "physical id"|sort|uniq -c|awk ‘{print "CPU:"$2,$NF,"Core:"$1}‘`
#机器型号
   System_machine_model=`dmidecode | grep "Product Name" |sed -n ‘1p‘|sed ‘s/[\t]//g‘`
#CPU型号
   System_cpu_model=`cat /proc/cpuinfo |egrep "model name"|uniq|awk ‘{print$4" "$5}‘`
#显卡型号
   System__gpu_model=`lspci|grep VGA |awk ‘{print $5" "$6" "$7" "$8" "$9}‘`

echo "=============System_info==============="
echo "系统使用的Linux系统版本是:$System_version"
echo "系统的内核版本是:$System_kernel"
echo -e "系统cpu个数与核数是:\n$Sytem_cpu"
echo "各个硬件型号:"
echo "  (1)机器型号:$System_machine_model"
echo "  (2)CPU型号:$System_cpu_model"
echo "  (3)显卡型号:$System__gpu_model"
echo "=============System_info==============="
}  

#====================================
#Fuction Disk_info() 收集硬盘|分区信息
#====================================
Disk_info()
{
#使用/tmp/disk.txt文件来存放各个硬盘名称
[ -f /tmp/disk.txt ]
if [ $? -eq 0 ]
then
   echo -n "">/tmp/disk.txt
   fdisk -l |egrep "Disk /dev"|awk ‘{print $2}‘|awk -F: ‘{print$1}‘ >/tmp/disk.txt
else
   touch /tmp/disk.txt
   fdisk -l |egrep "Disk /dev"|awk ‘{print $2}‘|awk -F: ‘{print$1}‘ >/tmp/disk.txt
fi

Disk_count=`fdisk -l |egrep "Disk /dev"|wc -l`
echo "=============Disk_info==============="
echo "本机共有$Disk_count块硬盘"
while read disk
do
  Disk_DX=`fdisk -l $disk 2>/dev/null | egrep "Disk */" |awk ‘{print $2$3$4}‘|sed -e ‘s/:/=/g‘ -e s/,//g`
  Disk_FQ=`fdisk -l $disk |egrep "^/dev"|wc -l`
  echo "  其中$Disk_DX,有$Disk_FQ个分区"
done < /tmp/disk.txt
echo "=============Disk_info==============="
}

#====================================
#Fuction Mem_info()--->收集内存信息
#====================================
Mem_info()
{
#分别提取出内存的total、used、free
total=`free |egrep "^Mem"|awk ‘{print $2}‘`
used=`free |egrep "^Mem"|awk ‘{print $3}‘`
free=`free |egrep "^Mem"|awk ‘{print $4}‘`
#利用bc按照单位为GB的格式输出
total_G=`echo "scale=1;$total/1000000"|bc`
used_G=`echo "scale=1;$used/1000000" |bc`
free_G=`echo "scale=1;$free/1000000" |bc`

echo "=============Mem_info==============="
echo  "Mem total:$total_G G"
echo  "Mem used:$used_G G"
echo  "Mem free:$free_G G"
echo "=============Mem_info==============="
}

#====================================
#Fuction Os_info() 收集操作系统信息
#====================================
Os_info()
{
#当前系统运行级别
 Os_runlevel=`runlevel |awk ‘{print$2}‘`
#当前系统登录用户
 Os_user=`whoami`
echo "=============Os_info==============="
echo "当前运行的系统级别是:$Os_runlevel"
echo "当前系统登录用户:$Os_user"
echo "=============Os_info==============="
}

#=========================================
#Fuction Network_info() 收集操作系统信息
#=========================================
Network_info()
{
#计算本机IP个数
 IPGS=`ifconfig |egrep "\<inet\>" |wc -l`
#查询本机网关地址
 GW=`route -n |egrep "^0.0.0.0"|awk ‘{print $2}‘`
echo "=============Network_info==============="
echo "本机IP地址有$IPGS个"
ifconfig |egrep "\<inet\>" |awk ‘{print$2":"$4}‘|awk -F: ‘{print"  IP:"$2",""子网掩码:"$4}‘
echo "网关地址为:$GW"
echo "=============Network_info==============="
}

#====================================
#Function-->供用户交互选择的主菜单界面
#====================================
Menu()
{
   echo "=============欢迎使用系统信息查询功能==============="
   echo
   echo "1. 系统|硬件信息"
   echo
   echo "2. 硬盘|分区信息"
   echo
   echo "3. 内存信息"
   echo
   echo "4. 操作系统|运行信息"
   echo
   echo "5. 网络信息"
   echo
   echo "0. 退出系统"
   read -p "       请你输入你想查询的信息:"  choice

   case $choice in
   1) clear
      System_info
      Menu
   ;;

   2) clear
      Disk_info
      Menu
   ;;

   3) clear
      Mem_info
      Menu
   ;;

   4) clear
      Os_info
      Menu
   ;;

   5) clear
      Network_info
      Menu
   ;;

   0) exit 0
   ;;

   *) echo "sorry,输入错误!"
      Menu
   ;;

   esac

}

#====================================
#Function--->主函数
#====================================
Main()
{
  Menu
}

#====================================
#入口
#====================================
Main;
时间: 2025-01-09 09:30:09

[脚本实例]——统计系统信息脚本的相关文章

python常用运维脚本实例【转】

file是一个类,使用file('file_name', 'r+')这种方式打开文件,返回一个file对象,以写模式打开文件不存在则会被创建.但是更推荐使用内置函数open()来打开一个文件 . 首先open是内置函数,使用方式是open('file_name', mode, buffering),返回值也是一个file对象,同样,以写模式打开文件如果不存在也会被创建一个新的. f=open('/tmp/hello','w') #open(路径+文件名,读写模式) #读写模式:r只读,r+读写,

7个shell脚本实例--shell脚本练习必备

概述 看多shell脚本实例自然就会有shell脚本的编写思路了,所以我一般比较推荐看脚本实例来练习shell脚本.下面分享几个shell脚本实例. 一.监测Nginx访问日志Exception情况,并做相应动作 假设服务器环境为lnmp,监控出现Exception错误,并钉钉通知. #场景: #1.访问日志文件的路径:/data/logs/plateno-coupon-server/plateno-coupon-server.log#2.脚本死循环,每10秒检测一次,10秒的日志条数为300条

[转]关于Unity3D对象和脚本实例调用的顺序探究

http://blog.csdn.net/liangzg_2011/article/details/8150844 关于Unity3D对象和脚本实例调用的顺序探究 我们先来看一些有趣Unity实例顺序的小实验.有图有真相!! 注:以上打印的代码语句如下: [csharp] view plaincopy <span style="font-size:18px;">    void Start () { print("-----" + this.transf

mysql数据库统计QPS脚本

如下脚步是对mysql数据库统计QPS脚本: #!/bin/bash mysqladmin -uroot-p'xxxx' extended-status -i1|awk 'BEGIN{local_switch=0;print"QPS   Commit Rollback   TPS   Threads_con Threads_run\n------------------------------------------------------- "} $2 ~/Queries$/    

Oracle 判断 并 手动收集 统计信息 脚本

CREATE OR REPLACE PROCEDURE SchameB.PRC_GATHER_STATS AUTHID CURRENT_USER IS BEGIN SYS.DBMS_STATS.GATHER_TABLE_STATS('SchName', 'TableName', CASCADE => TRUE); END; / select owner,table_name,last_analyzed,num_rows from dba_tables where owner='SYSTEM' a

shell之脚本实例

一 检查用户是否是root权限的方式:#!/bin/bashROOT_UID=0 # Root has $UID 0.E_WRONG_USER=65 # Not root? E_NOSUCHUSER=70SUCCESS=0 if [ "$UID" -ne "$ROOT_UID" ]then echo echo "Only root can run this script." echo exit $E_WRONG_USERelse echo ech

Loadrunner之HTTP接口测试脚本实例

Loadrunner之HTTP接口测试脚本实例 接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文结果与预期结果进行比对的过程,接口测试可以通过Java发送 http post或者get请求来实现,也可以通过loadrunner来实现,今天介绍下loadrunner接口自动化测试实例: loadrunner接口测试原理是web_submit_data函数发送post或者get请求,将测试用例数据进行

单实例数据库安装脚本

安装脚本 1.1_preusers.sh #!/bin/bash #Purpose:Create 3 groups named 'oinstall','dba','oper', plus 1 users named 'oracle'. #Also setting the Environment #variable for oracle user. #Usage:Log on as the superuser('root'),and then execute the command:#./1pre

MySQL5.7多实例自动化部署脚本

一.安装说明 mysql5.7.10_onekey_install.sh自动化部署脚本支持mysql5.7.10初始化安装,多实例创建,且使用经过优化后的my.cnf配置文件和mysql.server启动脚本,该SHELL脚本在CentOS6.5_x86_64操作系统测试通过.部署示意图如下: 1.安装方式 需要准备的文件如下,放到同一个目录下,然后执行shell脚本 执行方式: ./mysql5.7.10_onekey_install.sh 3307 端口自定义,要求整数,且不和服务器端口冲突