快速获得服务器基本信息(debian centos)shell脚本

简介:

先上图后上shell脚本(适用于centos和debian系列)

wKiom1V-5EHy3r1hAAUOL0mNyT4610.jpg


wKioL1V-5uKzpQ1MAAWu8b3jp0Y084.jpg


wKioL1V-5kPAt93mAANRmxUEZ3k697.jpg

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
#!/bin/bash  
#--------------------------------------------------
#Date:June 15 2015
#Author:jimmygong
#Mail:jimmygong@taomee.com
#Function:
#Version:1.0
#--------------------------------------------------
set  -o nounset
line= '======================================================================'
greencolor= '\E[1;32m'
 
if  [[ ` id  -u` - ne  0 ]]
then
     echo  "sctipts need root"
     exit  0
fi
function  os ()
{
     manufacturer=$(dmidecode -s system-manufacturer)
     product=$(dmidecode -s system-product-name)
     sn=$(dmidecode -s system-serial-number)
     nu=$(dmidecode| grep  "Height" )
     if  [[ -e  /etc/debian_version  ]]
     then
         unamev=$( uname  -r)
         unamem=$( uname  -m)
         echo  -e  "${greencolor}" Os: "debian ${unamev} ${unamem}\n${line}"
                 apt-get -y  install  lsscsi curl pciutils dmidecode --force- yes  /dev/null  2>&1
     elif  [[ -e  /etc/redhat-release  ]]
     then
         release=$( cat  /etc/redhat-release )
         echo  -e  "${greencolor}" Os: "${release}\n${line}"
                 yum -y  install  lsscsi curl pciutils dmidecode >  /dev/null  2>&1
     else
         echo  "unkown release"
     fi
     if  [[ -e  /boot/grub/menu .lst ]]
     then
         grub1=$( cat  /boot/grub/menu .lst| egrep  - v  "^#|^$" )
         echo  -e  "Grub:\n${grub1}\n${line}"
     else
         grub2=$( cat  /etc/default/grub | egrep  - v  "^#|^$" )
         echo  -e  "Grub:\n${grub2}\n${line}"
     fi
     echo  -e  "Manufacturer:${manufacturer}"
     echo  -e  "Product:${product}"
     echo  -e  "Sn:${sn}"
     echo  -e  "U:${nu}\n${line}"
}
function  cpu ()
{
     mode=$(getconf LONG_BIT)
     counts=$( cat  /proc/cpuinfo | grep  "physical id" | sort | uniq  -c| wc  -l)
     cores=$( grep  'cpu cores'  /proc/cpuinfo | uniq | awk  -F :  '{print $2}'  | sed  's/^[ \t]*//g' )
     processor=$( cat  /proc/cpuinfo | grep  "processor" | wc  -l)
     cpu=$( grep  'model name'  /proc/cpuinfo | uniq | awk  -F :  '{print $2}'  | sed  's/^[ \t]*//g'  | sed  's/ \+/ /g' )
     echo  -e  "Total Of Physical Cpu:${counts}"
     echo  -e  "Number Of Cpu Cores:${cores}"
     echo  -e  "Number Of Cpu Processor:${processor}"
     echo  -e  "Present Mode Of Cpu:${mode}"
     echo  -e  "Cpu Model:${cpu}\n${line}"
}
function  mem ()
{
     swap=$( cat  /proc/meminfo | grep  SwapTotal| awk  -F:  '{print $2}' | awk  -F " "  '{print $1}' )
     swap=$( expr  $swap / 1024)
     mem=$( cat  /proc/meminfo | grep  MemTotal| awk  -F:  '{print $2}' | awk  -F " "  '{print $1}' )
     memory=$(dmidecode| grep  -i -C5  'Memory Device' | grep  - v  "No Module Installed" | grep  -i size| grep  - v  "Range" )
     memoryslot=$(dmidecode| grep  -i -C5  'Memory Device' | grep  "No Module Installed" | wc  -l)
     mem=$( expr  $mem / 1024)
     remem=$( free  -m| grep  cache| awk  '/[0-9]/{ print $4" MB" }' )
     echo  -e  "Memslot:${memoryslot}"
     echo  -e  "Number Of Mem:\n${memory}"
     echo  -e  "Total Of Mem:${mem}MB"
     echo  -e  "Total Of Swap:${swap}MB"
     echo  -e  "RemainMem:${remem}\n${line}"
}
function  disk ()
{
     disk=$( fdisk  -l| grep  'Disk' | awk  -F ,  '{print $1}'  sed  's/Disk identifier.*//g'  sed  '/^$/d' )
     dftotal=$( df  -h| grep  "^/dev" | grep  - v  Filesystem)
     dfinode=$( df  -i| grep  "^/dev" | grep  - v  Filesystem)
     fstab=$( cat  /etc/fstab | egrep  - v  "^#|^$" '|media|proc' | awk  '{print $1,$2,$3,$4}' )
     blkid=$(blkid)
     lsscsicmd=$(lsscsi)
     lspcicmd=$(lspci| egrep  -i  "sas|raid" )
         echo  -e  "Scsi:\n${lsscsicmd}"
     echo  -e  "Raid:\n${lspcicmd}"
     echo  -e  "Disktotal:\n${disk}"
     echo  -e  "Dftotal:\n${dftotal}"
     echo  -e  "Dfinode:\n${dfinode}"
     echo  -e  "Fstab:\n${fstab}"
     echo  -e  "Blkid:\n${blkid}\n${line}"
}
function  timezone ()
{
     if  [[ -e  /etc/timezone  ]]
     then
         timezone1=$( cat  /etc/timezone )
         echo  -e  "Timezone:${timezone1}\n${line}"
     else
         timezone2=$( cat  /etc/sysconfig/clock | grep  - v  "^#" | grep  - v  "^$" | awk  -F "="  '{print $2}' )
         echo  -e  "Timezone:${timezone2}\n${line}"
     fi
}
function  network ()
{
     hostnamecmd=$( cat  /proc/sys/kernel/hostname )
     namecmd=$( cat  /etc/resolv .conf| grep  "nameserver" | egrep  - v  "^#|^$" )
     innerip=$( hostname  -i)
     outerip=$(curl -s ip.cip.cc)
     echo  -e  "${namecmd}"
     echo  -e  "Hostname:${hostnamecmd}"
     echo  -e  "Innerip:${innerip}"
     echo  -e  "Outerip:${outerip}\n${line}"
}
function  ipmi ()
{
     lsmodipmi=$(lsmod| grep  ipmi)
     if  [[ $? - eq  0 ]]
     then
         ipmi=$(ipmitool lan print| grep  "IP Address" | sed  's/IP Address Source.*//g' sed  '/^$/d' )
         echo  -e  "Ipmi:${ipmi}"
     fi
     tty =$( ps  aux| grep  -w  "ttyS1" | grep  - v  grep || ps  aux| grep  -w  "ttyS0" | grep  - v  grep )
     if  [[ $? - eq  0 ]]
     then
         echo  -e  "TtyS:${tty}\n${line}"
     fi
}
function  processid ()
{
     ss -s| head  -2
     net=` netstat  -tpnl| grep  LISTEN| awk  '{print $4,$7}' `
     echo  -e  "Netstattpnl:\n${net}"
     processnum=`ss -pl| awk  -F:  '{print $4}' | awk  -F ","  '{print $2}' | sed  '/^$/d' | wc  -l`
     for  ((i=1;i<=$processnum;i++))
     do
         pid=`ss -pl| awk  -F:  '{print $4}' | awk  -F ","  '{print $2}' | sed  '/^$/d' | sed  -n $i 'p' `
         process=`pmap $pid| head  -n 2`
         echo  -e  "Process:${process}"
     done
     echo  -e ${line}
}
function  swap ()
{
     echo  -e  "Pid\tSwap\tProgame"
     num=0
     for  pid  in  ` ls  -1  /proc | egrep  "^[0-9]" `
     do
         if  [[ $pid - le  '30'  ]]
         then
             continue
         fi
         program=$( ps  -eo pid, command | grep  -w $pid| grep  - v  grep | awk  '{print $2}' )
         for  swap  in  ` grep  Swap  /proc/ $pid /smaps  2> /dev/null | awk  '{print $2}' `
         do
             let  num=$num+$swap
         done
         echo  -e  "${pid}\t${num}\t${program}"
         num=0
     done | sort  -nrk2| head
     echo  -e ${line}
}
function  mima ()
{
     num=$( cat  /etc/passwd | grep  "/bin/bash" | awk  -F:  '{print $1}' | wc  -l)
     for  ((i=1;i<=$num;i++))
     do
         user=$( cat  /etc/passwd | grep  "/bin/bash" | awk  -F:  '{print $1}' | sed  -n $i 'p' )
         effeday=$( cat  /etc/shadow | grep  $user| awk  -F:  '{print $1,$5}' )
         echo  -e  "Shadow:${effeday}"
     done
     if  [[ -e  /etc/sudoers  ]]
     then
         sudoers=$( cat  /etc/sudoers | egrep  - v  "^#|^$" )
         echo  -e  "Sudoers:${sudoers}"
     fi
     chag=$(chage -l root)
     echo  -e  "ChageRoot:\n${chag}\n${line}"
}
function  lastlogin ()
{
     if  [[ -e  /var/log/wtmp  ]]
     then
         last=$(last| head  -n 10)
         echo  -e  "Last:\n${last}\n${line}"
     fi
}
function  limit ()
{
     limitcmd=$( cat  /etc/security/limits .conf| egrep  - v  '^#|^$' )
     if  [[ $? - eq  0 ]]
     then
         echo  -e  "Limitconf:\n${limitcmd}\n${line}"
     fi
}
function  diskcheck ()
{
     if  [[ -e  /usr/local/sbin/MegaCli64  ]]
     then
         cmd= "/usr/local/sbin/MegaCli64"
         raid=`$cmd -cfgdsply -aALL| grep  "RAID Level" | tail  -1| awk  -F:  '{print $1"        :"$2}' `
         disknum=`$cmd -cfgdsply -aALL| grep  "Number Of Drives" | awk  -F:  '{print $2}' `
         onlinedisk=`$cmd -cfgdsply -aALL| grep  -c  "Online" `
         faileddisk=`$cmd -AdpAllInfo -aALL -NoLog| awk  '/Failed Disks/ {print $4}' `
         criticaldisk=`$cmd -AdpAllInfo -aALL -NoLog| awk  '/Critical Disks/ {print $4}' `
         case  "$raid"  in
             "RAID Level        : Primary-1, Secondary-0, RAID Level Qualifier-0" )
             echo  "Raid Level:1" ;;
             "RAID Level        : Primary-0, Secondary-0, RAID Level Qualifier-0" )
             echo  "Raid Level:0" ;;
             "RAID Level        : Primary-5, Secondary-0, RAID Level Qualifier-3" )
             echo  "Raid Level:5" ;;
             "RAID Level        : Primary-6, Secondary-0, RAID Level Qualifier-3" )
             echo  "Raid Level:6" ;;
             "RAID Level        : Primary-1, Secondary-3, RAID Level Qualifier-0" )
             echo  "Raid Level:10" ;;
         esac
         echo  "Total Diak Number:$disknum"
         echo  "Online Disk Number:$onlinedisk"
         echo  "Failed Disk Number:$faileddisk"
         echo  "Critical Disk Number:$criticaldisk"
         $cmd -PDList -aALL| grep  "Firmware state"
         echo  -e ${line}
     fi
}
function  localea ()
{
     if  [[ -e  /etc/default/locale  ]]
     then
         locale1=$( cat  /etc/default/locale | egrep  - v  "^#|^$" )
         echo  -e  "CurrLocale:${locale1}"
     elif  [[ -e  /etc/sysconfig/i18n  ]]
     then
         locale2=$( cat  /etc/sysconfig/i18n | egrep  - v  "^#|^$" )
         echo  -e  "CurrLocale:${locale2}"
     else
         echo  $LANG
     fi
     locale=`locale -a| wc  -l`
     echo  -e  "LocaleNum:${locale}\n${line}"
}
function  cron  ()
{
     user=$( ps  aux| grep  - v  USER| awk  '{print $1}' | sort  -r| uniq )
     echo  -e  "RunUser:\n${user}\n${line}"
     path1= "/var/spool/cron/crontabs"
     path2= "/var/spool/cron"
     if  [[ -d $path1 ]]
     then
         for  user  in  $( ls  -1 $path1)
         do 
             echo  -e  "$user:"
             crontab  -l -u $user| egrep  - v  "^#|^$"
         done
     else
         for  user  in  $( ls  -1 $path2)
         do 
             echo  -e  "$user:"
             crontab  -l -u $user| egrep  - v  "^#|^$"
         done
     fi
}
 
os
cpu
mem
disk
timezone
network
ipmi
processid
swap
mima
lastlogin
limit
diskcheck
localea
cron
exit  0









本文转自 xdoujiang 51CTO博客,原文链接:http://blog.51cto.com/7938217/1662177,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
51 2
|
2月前
|
NoSQL Linux Redis
在 centos7 下重启/开启 redis 服务器
本文提供了一种在Centos 7操作系统下如何重启Redis服务器的步骤,包括停止Redis服务、确认停止成功以及重新启动Redis服务。
170 2
在 centos7 下重启/开启 redis 服务器
|
2月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
66 1
|
2月前
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
80 4
|
2月前
|
分布式计算 Hadoop Shell
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
60 3
|
2月前
|
存储 网络协议 Linux
AWS实操-EC2-创建购买linux(centos)EC2服务器
AWS实操-EC2-创建购买linux(centos)EC2服务器
|
2月前
|
弹性计算 关系型数据库 MySQL
CentOS 7.x操作系统的ECS云服务器上搭建WordPress网站
CentOS 7.x操作系统的ECS云服务器上搭建WordPress网站
|
2月前
|
Linux 数据安全/隐私保护 Windows
centos 7.2 搭建svn服务器
centos 7.2 搭建svn服务器
57 0
|
4月前
|
运维 监控 数据库
自动化运维:使用Python脚本实现服务器监控
【8月更文挑战第31天】在这篇文章中,我们将探索如何利用Python编写简单的脚本来实现对服务器的基本监控。通过学习和应用这些技术,你可以快速检测服务器的状态,包括CPU使用率、内存占用和磁盘空间等关键指标。这不仅有助于及时发现问题,还能提升运维效率。文章将逐步引导你理解监控的重要性,并展示如何从零开始构建自己的监控工具。
|
4月前
|
存储 运维 监控
自动化运维:使用Python脚本进行服务器监控
【8月更文挑战第31天】在数字化时代,服务器的稳定运行对于企业至关重要。本文将介绍如何使用Python编写一个简单的服务器监控脚本,帮助运维人员及时发现并解决潜在问题。我们将从基础的服务器资源监控开始,逐步深入到日志分析与报警机制的实现。通过实际代码示例和操作步骤,使读者能够快速掌握自动化监控的技能,提升工作效率。
下一篇
DataWorks