推荐一个获取Linux服务器(ubuntu、centos已测试)信息的Shell脚本

此脚本已经在ubuntu以及centos版本上测试通过,直接上源代码比较爽:

 代码如下 复制代码
#!/bin/bash

Line='==========='

#linux发行版名称
if [[ -f /usr/bin/lsb_release ]]; then
OS=$(/usr/bin/lsb_release -a |grep Description |awk -F : '{print $2}' |sed 's/^[ t]*//g')
else
OS=$(cat /etc/issue |sed -n '1p')
fi

echo -e "${Line}nOS:n${OS}n${Line}"

######################################################################################################

#查看系统是否为64位:uname -m,若出现x86_64,则为64位
OS_version=$(uname -m)
echo -e "OS_version:n${OS_version}n${Line}"

#系统内核版本
kernel_version=$(uname -r)
echo -e "Kernel_version:n${kernel_version}n${Line}"

#cpu型号
CPU=$(grep 'model name' /proc/cpuinfo |uniq |awk -F : '{print $2}' |sed 's/^[ t]*//g' |sed 's/ +/ /g')
echo -e "CPU model:n${CPU}n${Line}"

#物理cpu个数
Counts=$(grep 'physical id' /proc/cpuinfo |sort |uniq |wc -l)
echo -e "Total of physical CPU:n${Counts}n${Line}"

#物理cpu内核数
Cores=$(grep 'cpu cores' /proc/cpuinfo |uniq |awk -F : '{print $2}' |sed 's/^[ t]*//g')
echo -e "Number of CPU coresn${Cores}n${Line}"

#逻辑cpu个数
PROCESSOR=$(grep 'processor' /proc/cpuinfo |sort |uniq |wc -l)
echo -e "Number of logical CPUs:n${PROCESSOR}n${Line}"

#查看CPU当前运行模式是64位还是32位
Mode=$(getconf LONG_BIT)
echo -e "Present Mode Of CPU:n${Mode}n${Line}"

#查看CPU是否支持64位技术:grep 'flags' /proc/cpuinfo,若flags信息中包含lm字段,则支持64位
Numbers=$(grep 'lm' /proc/cpuinfo |wc -l)
if (( ${Numbers} > 0)); then lm=64
else lm=32
fi
echo -e "Support Mode Of CPU:n${lm}n${Line}"
######################################################################

#Memtotal 内存总大小
Total=$(cat /proc/meminfo |grep 'MemTotal' |awk -F : '{print $2}' |sed 's/^[ t]*//g')
echo -e "Total Memory:n${Total}n${Line}"

#系统支持最大内存
Max_Capacity=$(dmidecode -t memory -q |grep 'Maximum Capacity' |awk -F : '{print $2}' |sed 's/^[ t]*//g')
echo -e "Maxinum Memory Capacity:n${Max_Capacity}n${Line}"

#查看内存类型、频率、条数、最大支持内存等信息:dmidecode -t memory,或dmidecode | grep -A16 "Memory Device$"
#下面为统计内存条数
Number=$(dmidecode | grep -A16 "Memory Device$" |grep Size|sort |sed 's/^[ t]*//g'| grep -v 'No Module Installed' | wc -l)
echo -e "Number of Physical Memory:n${Number}n${Line}"

#SwapTotal swap分区总大小
SwapTotal=$(cat /proc/meminfo |grep 'SwapTotal' |awk -F : '{print $2}' |sed 's/^[ t]*//g')
echo -e "Total Swap:n${SwapTotal}n${Line}"

#Buffers size
Buffers=$(cat /proc/meminfo |grep 'Buffers' |awk -F : '{print $2}' |sed 's/^[ t]*//g')
echo -e "Buffers:n${Buffers}n${Line}"

#Cached size
Cached=$(cat /proc/meminfo |grep '<Cached>' |awk -F : '{print $2}' |sed 's/^[ t]*//g')
echo -e "Cached:n${Cached}n${Line}"

#空闲内存 + buffers/cache
Available=$(free -m |grep - |awk -F : '{print $2}' |awk '{print $2}')
echo -e "Available Memory:n${Available} MBn${Line}"

#显示硬盘,以及大小
Disk=$(fdisk -l |grep 'Disk' |awk -F , '{print $1}' | sed 's/Disk identifier.*//g' | sed '/^$/d')
echo -e "Amount Of Disks:n${Disk}n${Line}"

#各挂载分区使用情况
Partion=$(df -hlP |sed -n '2,$p')
echo -e "Usage Of partions:n${Partion}n${Line}"

----------------------------------------------------------------------------------------

测试结果展示:

 代码如下 复制代码
===========
OS:
Red Hat Enterprise Linux Server release 5.6 (Tikanga)
===========
OS_version:
i686
===========
Kernel_version:
2.6.18-238.el5
===========
CPU model:
AMD A6-3400M APU with Radeon(tm) HD Graphics
===========
Total of physical CPU:
2
===========
Number of CPU cores
2
===========
Number of logical CPUs:
4
===========
Present Mode Of CPU:
32
===========
Support Mode Of CPU:
64
===========
Total Memory:
514744 kB
===========
Maxinum Memory Capacity:
1024 GB
===========
Number of Physical Memory:
1
===========
Total Swap:
1044216 kB
===========
Buffers:
101936 kB
===========
Cached:
267356 kB
===========
Available Memory:
369 MB
===========
Amount Of Disks:
Disk /dev/sda: 107.3 GB
===========
Usage Of partions:
/dev/sda3 96G 4.6G 87G 6% /
/dev/sda1 99M 12M 83M 13% /boot
tmpfs 252M 0 252M 0% /dev/shm
/dev/hdc 3.0G 3.0G 0 100% /media/RHEL_5.6 i386 DVD
===========
时间: 2024-07-30 05:52:23

推荐一个获取Linux服务器(ubuntu、centos已测试)信息的Shell脚本的相关文章

分享一段php获取linux服务器状态的代码_php实例

简单的php获取linux服务器状态的代码,不多说-直接上函数: 复制代码 代码如下: function get_used_status(){  $fp = popen('top -b -n 2 | grep -E "^(Cpu|Mem|Tasks)"',"r");//获取某一时刻系统cpu和内存使用情况  $rs = "";  while(!feof($fp)){   $rs .= fread($fp,1024);  }  pclose($fp

Linux退出后要如何限制IP登录Shell脚本

Linux系统虽然比Windows系统安全很多,是很好的程序开发环境,但多少还是存在一些安全隐患的.在Linux用户退出系统后,还是会有多个IP登录的风险,那么Linux退出后要如何限制IP登录Shell脚本呢?下面小编介绍一些实例. 生产环境中,有可能会出现被其他管理员或使用者修改hosts.allow允许更多的ip登陆机器;为了方便统一管理,我们可以在用户退出的时候统一修改allow和deny文件成默认设置.同时也能自动获取机器所配ip的整个ip段为允许登陆. test -f /root/.

linux服务器用centos还是ubuntu系统_Linux

linux服务器系统多使用CentOS.uBuntu.Gentoo.FreeBSD.Debian. 服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS ,CENTOS现在市场占有率第一了 [小议]centos与ubuntu的区别 CentOS(Community ENTerprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成.由于出自同样的源代码,因此有些要求高

linux服务器系统CentOS、uBuntu、Gentoo、FreeBSD、Debian的比较_Linux

官网:http://www.centos.org/ CentOS其实是Redhat的内核,感觉是会成熟稳定一点,相比旧Redhat,他多了一个yum的命令,学Debian一样自动安装软件:但我感觉CentOS的可以Yum的东西相比Debian或Ubuntu,实在太少了:CentOS游走在年轻与成熟之间,它比Ubuntu更注重安全性,你看他的CentOS5.0默认一装好就自带并打开防火墙就知道:而且有一个叫SELinux的东东在里面,让不同的程序之间权限有所限制,这也是我装CentOS一些软件经常

linux下的shell命令的编写,以及java如何调用linux的shell命令(java如何获取linux上的网卡的ip信息)

程序员都很懒,你懂的! 最近在开发中,需要用到服务器的ip和mac信息.但是服务器是架设在linux系统上的,对于多网口,在获取ip时就产生了很大的问题.下面是在windows系统上,java获取本地ip的方法.贴代码: package com.herman.test; import java.net.InetAddress; /** * @see 获取计算机ip * @author Herman.Xiong * @date 2014年5月16日 09:35:38 */ public class

Linux下查找后门程序 CentOS 查后门程序的shell脚本_linux shell

每个进程都会有一个PID,而每一个PID都会在/proc目录下有一个相应的目录,这是linux(当前内核2.6)系统的实现. 一般后门程序,在ps等进程查看工具里找不到,因为这些常用工具甚至系统库在系统被入侵之后基本上已经被动过手脚(网上流传着大量的rootkit.假如是内核级的木马,那么该方法就无效了). 因为修改系统内核相对复杂(假如内核被修改过,或者是内核级的木马,就更难发现了),所以在/proc下,基本上还都可以找到木马的痕迹. 思路: 在/proc中存在的进程ID,在 ps 中查看不到

获取服务器信息的Shell脚本分享(ubuntu、centos测试通过)_linux shell

此脚本已经在ubuntu以及centos版本上测试通过,脚本如下: 复制代码 代码如下: #!/bin/bash Line='===========' #linux发行版名称 if [[ -f /usr/bin/lsb_release ]]; then OS=$(/usr/bin/lsb_release -a |grep Description |awk -F : '{print $2}' |sed 's/^[ \t]*//g') else OS=$(cat /etc/issue |sed -n

C语言编写获取Linux本地目录及本机信息的小程序实例_C 语言

展示目录的小程序展示指定目录的小程序: #include <unistd.h> #include <stdio.h> #include <dirent.h> #include <string.h> #include <sys/stat.h> #include <stdlib.h> void printdir(char *dir,int depth){ DIR *dp; struct dirent *entry; struct stat

CentOS下Web服务器CPU负载超过阀值自动重启shell脚本

说明:   操作系统:CentOS   web服务器:apache  问题:   搜索引擎的爬虫导致网站在某一段时间内访问量剧增,服务器压力过大,网站访问超时.页面无法打开.  解决办法:   定时监控服务器负载,超过一定阀值后,自动重启web服务.   apache安装目录:/usr/local/apache   脚本运行日志文件:/usr/local/apache/check_cpu_load.log   脚本存放目录:/home/crontab   cd /home/crontab   v