#化鲲为鹏,我有话说# 鲲鹏服务器信息巡检脚本
【摘要】 一、背景目前使用华为云鲲鹏服务器,对登录一个系统,快速查看其系统信息,检查系统各项指标及参数,编写系统快速检查脚本,输出系统信息到脚本运行的logs目录下。二、脚本git地址#!/bin/bash# auth:kaliarch# func:sys info check# version:v1.0# sys:centos6.x/7.x[ $(id -u) -gt 0 ] && echo "请用...
一、背景
目前使用华为云鲲鹏服务器,对登录一个系统,快速查看其系统信息,检查系统各项指标及参数,编写系统快速检查脚本,输出系统信息到脚本运行的logs目录下。
二、脚本
#!/bin/bash
# auth:kaliarch
# func:sys info check
# version:v1.0
# sys:centos6.x/7.x
[ $(id -u) -gt 0 ] && echo "请用root用户执行此脚本!" && exit 1
sysversion=$(rpm -q centos-release|cut -d- -f3)
line="-------------------------------------------------"
[ -d logs ] || mkdir logs
sys_check_file="logs/$(ip a show dev eth0|grep -w inet|awk '{print $2}'|awk -F '/' '{print $1}')-`date +%Y%m%d`.txt"
# 获取系统cpu信息
function get_cpu_info() {
Physical_CPUs=$(grep "physical id" /proc/cpuinfo| sort | uniq | wc -l)
Virt_CPUs=$(grep "processor" /proc/cpuinfo | wc -l)
CPU_Kernels=$(grep "cores" /proc/cpuinfo|uniq| awk -F ': ' '{print $2}')
CPU_Type=$(grep "model name" /proc/cpuinfo | awk -F ': ' '{print $2}' | sort | uniq)
CPU_Arch=$(uname -m)
cat <<EOF | column -t
CPU信息:
物理CPU个数: $Physical_CPUs
逻辑CPU个数: $Virt_CPUs
每CPU核心数: $CPU_Kernels
CPU型号: $CPU_Type
CPU架构: $CPU_Arch
EOF
}
# 获取系统内存信息
function get_mem_info() {
check_mem=$(free -m)
MemTotal=$(grep MemTotal /proc/meminfo| awk '{print $2}') #KB
MemFree=$(grep MemFree /proc/meminfo| awk '{print $2}') #KB
let MemUsed=MemTotal-MemFree
MemPercent=$(awk "BEGIN {if($MemTotal==0){printf 100}else{printf \"%.2f\",$MemUsed*100/$MemTotal}}")
report_MemTotal="$((MemTotal/1024))""MB" #内存总容量(MB)
report_MemFree="$((MemFree/1024))""MB" #内存剩余(MB)
report_MemUsedPercent="$(awk "BEGIN {if($MemTotal==0){printf 100}else{printf \"%.2f\",$MemUsed*100/$MemTotal}}")""%" #内存使用率%
cat <<EOF
内存信息:
${check_mem}
EOF
}
# 获取系统网络信息
function get_net_info() {
pri_ipadd=$(ip a show dev eth0|grep -w inet|awk '{print $2}'|awk -F '/' '{print $1}')
pub_ipadd=$(curl ifconfig.me -s)
gateway=$(ip route | grep default | awk '{print $3}')
mac_info=$(ip link| egrep -v "lo"|grep link|awk '{print $2}')
dns_config=$(egrep -v "^$|^#" /etc/resolv.conf)
route_info=$(route -n)
cat <<EOF | column -t
IP信息:
系统公网地址: ${pub_ipadd}
系统私网地址: ${pri_ipadd}
网关地址: ${gateway}
MAC地址: ${mac_info}
路由信息:
${route_info}
DNS 信息:
${dns_config}
EOF
}
# 获取系统磁盘信息
function get_disk_info() {
disk_info=$(fdisk -l|grep "Disk /dev"|cut -d, -f1)
disk_use=$(df -hTP|awk '$2!="tmpfs"{print}')
disk_inode=$(df -hiP|awk '$1!="tmpfs"{print}')
cat <<EOF
磁盘信息:
${disk_info}
磁盘使用:
${disk_use}
inode信息:
${disk_inode}
EOF
}
# 获取系统信息
function get_systatus_info() {
sys_os=$(uname -o)
sys_release=$(cat /etc/redhat-release)
sys_kernel=$(uname -r)
sys_hostname=$(hostname)
sys_selinux=$(getenforce)
sys_lang=$(echo $LANG)
sys_lastreboot=$(who -b | awk '{print $3,$4}')
sys_runtime=$(uptime |awk '{print $3,$4}'|cut -d, -f1)
sys_time=$(date)
sys_load=$(uptime |cut -d: -f5)
cat <<EOF | column -t
系统信息:
系统: ${sys_os}
发行版本: ${sys_release}
系统内核: ${sys_kernel}
主机名: ${sys_hostname}
selinux状态: ${sys_selinux}
系统语言: ${sys_lang}
系统当前时间: ${sys_time}
系统最后重启时间: ${sys_lastreboot}
系统运行时间: ${sys_runtime}
系统负载: ${sys_load}
EOF
}
# 获取服务信息
function get_service_info() {
port_listen=$(netstat -lntup|grep -v "Active Internet")
kernel_config=$(sysctl -p 2>/dev/null)
if [ ${sysversion} -gt 6 ];then
service_config=$(systemctl list-unit-files --type=service --state=enabled|grep "enabled")
run_service=$(systemctl list-units --type=service --state=running |grep ".service")
else
service_config=$(/sbin/chkconfig | grep -E ":on|:启用" |column -t)
run_service=$(/sbin/service --status-all|grep -E "running")
fi
cat <<EOF
服务启动配置:
${service_config}
${line}
运行的服务:
${run_service}
${line}
监听端口:
${port_listen}
${line}
内核参考配置:
${kernel_config}
EOF
}
function get_sys_user() {
login_user=$(awk -F: '{if ($NF=="/bin/bash") print $0}' /etc/passwd)
ssh_config=$(egrep -v "^#|^$" /etc/ssh/sshd_config)
sudo_config=$(egrep -v "^#|^$" /etc/sudoers |grep -v "^Defaults")
host_config=$(egrep -v "^#|^$" /etc/hosts)
crond_config=$(for cronuser in /var/spool/cron/* ;do ls ${cronuser} 2>/dev/null|cut -d/ -f5;egrep -v "^$|^#" ${cronuser} 2>/dev/null;echo "";done)
cat <<EOF
系统登录用户:
${login_user}
${line}
ssh 配置信息:
${ssh_config}
${line}
sudo 配置用户:
${sudo_config}
${line}
定时任务配置:
${crond_config}
${line}
hosts 信息:
${host_config}
EOF
}
function process_top_info() {
top_title=$(top -b n1|head -7|tail -1)
cpu_top10=$(top b -n1 | head -17 | tail -10)
mem_top10=$(top -b n1|head -17|tail -10|sort -k10 -r)
cat <<EOF
CPU占用top10:
${top_title}
${cpu_top10}
内存占用top10:
${top_title}
${mem_top10}
EOF
}
function sys_check() {
get_cpu_info
echo ${line}
get_mem_info
echo ${line}
get_net_info
echo ${line}
get_disk_info
echo ${line}
get_systatus_info
echo ${line}
get_service_info
echo ${line}
get_sys_user
echo ${line}
process_top_info
}
sys_check > ${sys_check_file}
三、测试
鲲鹏服务器测试
采集鲲鹏服务器信息
CPU信息:
物理CPU个数: 0
逻辑CPU个数: 2
每CPU核心数:
CPU型号:
CPU架构: aarch64
-------------------------------------------------
内存信息:
total used free shared buff/cache available
Mem: 3482 393 2081 20 1007 2514
Swap: 0 0 0
-------------------------------------------------
IP信息:
系统公网地址: 121.36.1.227
系统私网地址: 192.168.0.17
网关地址: 192.168.0.1
MAC地址: fa:16:3e:50:d8:50
02:42:9b:e4:84:bd
d6:77:f9:49:14:8f
路由信息:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 eth0
169.254.169.254 192.168.0.1 255.255.255.255 UGH 100 0 0 eth0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
DNS 信息:
search openstacklocal
nameserver 100.125.1.250
nameserver 100.125.129.250
options single-request-reopen
-------------------------------------------------
磁盘信息:
Disk /dev/vda: 42.9 GB
Disk /dev/vdb: 107.4 GB
磁盘使用:
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 1.7G 0 1.7G 0% /dev
/dev/vda2 ext4 39G 3.4G 33G 10% /
/dev/vda1 vfat 1022M 7.7M 1015M 1% /boot/efi
overlay overlay 39G 3.4G 33G 10% /var/lib/docker/overlay2/6fde1851846f50e525be6b6fc104715c604c66b38f5d9e640f403dbc95f54def/merged
inode信息:
Filesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 28K 303 27K 2% /dev
/dev/vda2 2.5M 78K 2.4M 4% /
/dev/vda1 0 0 0 - /boot/efi
overlay 2.5M 78K 2.4M 4% /var/lib/docker/overlay2/6fde1851846f50e525be6b6fc104715c604c66b38f5d9e640f403dbc95f54def/merged
-------------------------------------------------
系统信息:
系统: GNU/Linux
发行版本: CentOS Linux release 7.4.1708 (AltArch)
系统内核: 4.14.0-115.5.1.el7a.aarch64
主机名: ecs-kc1-large-2-linux-20191111131638
selinux状态: Disabled
系统语言: en_US.UTF-8
系统当前时间: Wed Nov 13 17:53:35 CST 2019
系统最后重启时间: 2019-11-11 13:18
系统运行时间: 2 days
系统负载: 0.00, 0.00, 0.00
-------------------------------------------------
服务启动配置:
atd.service enabled
auditd.service enabled
autovt@.service enabled
cloud-config.service enabled
cloud-final.service enabled
cloud-init-local.service enabled
cloud-init.service enabled
crond.service enabled
dbus-org.freedesktop.NetworkManager.service enabled
dbus-org.freedesktop.nm-dispatcher.service enabled
docker.service enabled
getty@.service enabled
irqbalance.service enabled
kdump.service enabled
lvm2-monitor.service enabled
NetworkManager-dispatcher.service enabled
NetworkManager.service enabled
ntpd.service enabled
postfix.service enabled
rsyslog.service enabled
sshd.service enabled
systemd-readahead-collect.service enabled
systemd-readahead-drop.service enabled
systemd-readahead-replay.service enabled
tuned.service enabled
-------------------------------------------------
运行的服务:
atd.service loaded active running Job spooling tools
auditd.service loaded active running Security Auditing Service
cloudResetPwdUpdateAgent.service loaded active running LSB: @app.long.name@
containerd.service loaded active running containerd container runtime
crond.service loaded active running Command Scheduler
dbus.service loaded active running D-Bus System Message Bus
denyhosts.service loaded active running LSB: denyhosts
docker.service loaded active running Docker Application Container Engine
getty@tty1.service loaded active running Getty on tty1
irqbalance.service loaded active running irqbalance daemon
lvm2-lvmetad.service loaded active running LVM2 metadata daemon
NetworkManager.service loaded active running Network Manager
ntpd.service loaded active running Network Time Service
polkit.service loaded active running Authorization Manager
postfix.service loaded active running Postfix Mail Transport Agent
rsyslog.service loaded active running System Logging Service
serial-getty@ttyAMA0.service loaded active running Serial Getty on ttyAMA0
sshd.service loaded active running OpenSSH server daemon
systemd-journald.service loaded active running Journal Service
systemd-logind.service loaded active running Login Service
systemd-udevd.service loaded active running udev Kernel Device Manager
tuned.service loaded active running Dynamic System Tuning Daemon
-------------------------------------------------
监听端口:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1293/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 990/master
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 7695/./src/redis-se
tcp6 0 0 :::80 :::* LISTEN 9992/docker-proxy
tcp6 0 0 :::22 :::* LISTEN 1293/sshd
tcp6 0 0 ::1:25 :::* LISTEN 990/master
tcp6 0 0 :::6379 :::* LISTEN 7695/./src/redis-se
udp 0 0 0.0.0.0:7945 0.0.0.0:* 621/dhclient
udp 0 0 0.0.0.0:68 0.0.0.0:* 621/dhclient
udp 0 0 172.17.0.1:123 0.0.0.0:* 548/ntpd
udp 0 0 192.168.0.17:123 0.0.0.0:* 548/ntpd
udp 0 0 127.0.0.1:123 0.0.0.0:* 548/ntpd
udp 0 0 0.0.0.0:123 0.0.0.0:* 548/ntpd
udp6 0 0 fe80::d477:f9ff:fe4:123 :::* 548/ntpd
udp6 0 0 fe80::42:9bff:fee4::123 :::* 548/ntpd
udp6 0 0 fe80::f816:3eff:fe5:123 :::* 548/ntpd
udp6 0 0 ::1:123 :::* 548/ntpd
udp6 0 0 :::123 :::* 548/ntpd
udp6 0 0 :::58458 :::* 621/dhclient
-------------------------------------------------
内核参考配置:
-------------------------------------------------
系统登录用户:
root:x:0:0:root:/root:/bin/bash
-------------------------------------------------
ssh 配置信息:
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
SyslogFacility AUTHPRIV
AuthorizedKeysFile .ssh/authorized_keys
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials no
UsePAM yes
X11Forwarding yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
Subsystem sftp /usr/libexec/openssh/sftp-server
PermitRootLogin yes
PasswordAuthentication yes
UseDNS no
-------------------------------------------------
sudo 配置用户:
root ALL=(ALL) ALL
%wheel ALL=(ALL) ALL
-------------------------------------------------
定时任务配置:
-------------------------------------------------
hosts 信息:
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
127.0.0.1 localhost localhost
127.0.0.1 ecs-kc1-large-2-linux-20191111131638 ecs-kc1-large-2-linux-20191111131638
-------------------------------------------------
CPU占用top10:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 9536 8192 4224 S 0.0 0.2 0:02.49 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H
6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq
7 root 20 0 0 0 0 S 0.0 0.0 0:00.12 ksoftirqd/0
8 root 20 0 0 0 0 I 0.0 0.0 0:19.98 rcu_sched
9 root 20 0 0 0 0 I 0.0 0.0 0:00.00 rcu_bh
10 root rt 0 0 0 0 S 0.0 0.0 0:00.02 migration/0
11 root rt 0 0 0 0 S 0.0 0.0 0:00.14 watchdog/0 12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0
内存占用top10:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 9536 8192 4224 S 0.0 0.2 0:02.49 systemd
8 root 20 0 0 0 0 I 0.0 0.0 0:19.98 rcu_sched
11 root rt 0 0 0 0 S 0.0 0.0 0:00.14 watchdog/0
7 root 20 0 0 0 0 S 0.0 0.0 0:00.12 ksoftirqd/0
10 root rt 0 0 0 0 S 0.0 0.0 0:00.02 migration/0
9 root 20 0 0 0 0 I 0.0 0.0 0:00.00 rcu_bh
6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)