一.简介
介绍:显示简单的系统信息
效果图:
二.使用
适用:centos6、7+,ubuntu12+
语言:中文
注意:先在测试机实验一下
下载地址: http://wget.52liangzy.top/sh/cha_sys.sh
语句:
vim cha_sys.sh
#!/bin/bash
# auth:Lzy
# func:系统信息检查
# version:v1.0
# sys:centos6.x/7.x
# install: chmod +x che_sys.sh
# ./che_sys.sh
# 定义全局变量
# 判断用户是否为root用户 root用户ID为0
[ $(id -u) -ne 0 ] && echo "请用root用户执行此脚本!" && exit 1
# centos根据系统版本的来执行不同的shell
sysversion=$(rpm -q centos-release|cut -d- -f3)
# 设置分割线变量
line="-------------------------------------------------"
# 脚本输入内容保存目录,默认为当前目录,可以自行修改
[ -d logs ] || mkdir logs
# 请修改指定网卡,为后面做出相对应处理
Netword="ens33"
# sys_check_file="logs/$(ip a show dev eth0|grep -w inet|awk '{print $2}'|awk -F '/' '{print $1}')-`date +%Y%m%d`.txt"
# 保存txt文件 以IP为前缀,想要使用指定IP,请修改指定网卡
sys_check_file="logs/$(ifconfig $Netword |awk 'NR==2{print $2}')-`date +%Y%m%d`.txt"
# 自定义获取系统cpu信息函数
function get_cpu_info() {
# 物理CPU个数
Physical_CPUs=$(grep "physical id" /proc/cpuinfo| sort | uniq | wc -l)
# 逻辑CPU个数
Virt_CPUs=$(grep "processor" /proc/cpuinfo | wc -l)
# 每CPU核心数
CPU_Kernels=$(grep "cores" /proc/cpuinfo|uniq| awk -F ': ' '{print $2}')
# CPU型号
CPU_Type=$(grep "model name" /proc/cpuinfo | awk -F ': ' '{print $2}' | sort | uniq)
# CPU架构
CPU_Arch=$(uname -m)
# echo -e '\033[32m CPU信息:\033[0m' # 打印CPU信息 带有闪烁和变色
echo -e '\033[05;32m CPU信息:\033[0m'
# 打印变量
cat <<EOF | column -t
物理CPU个数: $Physical_CPUs
逻辑CPU个数: $Virt_CPUs
每CPU核心数: $CPU_Kernels
CPU型号: $CPU_Type
CPU架构: $CPU_Arch
EOF
}
# 自定义获取系统内存信息函数
function get_mem_info() {
# 内存总容量
Total=$(free -m | sed -n '2p' | awk '{print $2"M"}')
# 内存已使用
Used=$(free -m | sed -n '2p' | awk '{print $3"M"}')
# 内存使用率
Rate=$(free -m | sed -n '2p' | awk '{print""($3/$2)*100"%"}')
# echo -e '\033[32m 内存信息:\033[0m' # 打印内存信息 带有闪烁和变色
echo -e '\033[05;31m 内存信息:\033[0m'
# 打印变量
cat <<EOF | column -t
内存总容量:$Total
内存已使用:$Used
内存使用率:$Rate
EOF
}
# 自定义获取系统网络信息函数
function get_net_info() {
# 系统私网地址
pri_ipadd=$(ifconfig $Netword |awk 'NR==2{print $2}')
#pub_ipadd=$(curl ip.sb 2>&1)
# 系统公网地址
pub_ipadd=$(curl -s http://ddns.oray.com/checkip | awk -F ":" '{print $2}' | awk -F "<" '{print $1}'|awk '{print $1}')
# 网关地址
gateway=$(ip route | grep default | awk '{print $3}')
# MAC地址
mac_info=$(ip link| egrep -v "lo"|grep link|awk '{print $2}')
# DNS信息
dns_config=$(egrep 'nameserver' /etc/resolv.conf)
# 路由信息
route_info=$(route -n)
# echo -e '\033[32m IP信息:\033[0m' # 打印IP信息 带有闪烁和变色
echo -e '\033[05;33m IP信息:\033[0m'
# 打印变量
cat <<EOF | column -t
系统公网地址: ${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}')
# inode信息
disk_inode=$(df -hiP|awk '$1!="tmpfs"{print}')
# echo -e '\033[32m 磁盘信息:\033[0m' # 打印磁盘信息 带有闪烁和变色
echo -e '\033[05;34m 磁盘信息:\033[0m'
# 打印变量
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)
# selinux状态
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)
# echo -e '\033[32m 系统信息:\033[0m' # 打印系统信息 带有闪烁和变色
echo -e '\033[05;35m 系统信息:\033[0m'
# 打印变量
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
# echo -e '\033[32m 服务启动配置:\033[0m' # 打印服务启动配置 带有闪烁和变色
echo -e '\033[05;36m 服务启动配置:\033[0m'
# 打印变量
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 配置信息
ssh_config=$(egrep -v "^#|^$" /etc/ssh/sshd_config)
# sudo 配置用户
sudo_config=$(egrep -v "^#|^$" /etc/sudoers |grep -v "^Defaults")
# hosts 信息
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)
# echo -e '\033[32m 系统登录用户:\033[0m' # 打印系统登录用户 带有闪烁和变色
echo -e '\033[05;37m 系统登录用户:\033[0m'
# 打印变量
cat <<EOF
${login_user}
${line}
ssh 配置信息:
${ssh_config}
${line}
sudo 配置用户:
${sudo_config}
${line}
定时任务配置:
${crond_config}
${line}
hosts 信息:
${host_config}
EOF
}
# 自定义top占用前十函数
function process_top_info() {
# 打印top第一行名称
top_title=$(top -b n1|head -7|tail -1)
# CPU占用top10
cpu_top10=$(top b -n1 | head -17 | tail -10)
# 内存占用top10
mem_top10=$(top -b n1|head -17|tail -10|sort -k10 -r)
# echo -e '\033[32m CPU占用top10:\033[0m' # 打印CPU占用top10 带有闪烁和变色
echo -e '\033[05;38m CPU占用top10:\033[0m'
# 打印变量
cat <<EOF
${top_title}
${cpu_top10}
EOF
# echo -e '\033[32m 内存占用top10:\033[0m' # 打印内存占用top10 带有闪烁和变色
echo -e '\033[05;39m 内存占用top10:\033[0m'
# 打印变量
cat <<EOF
${top_title}
${mem_top10}
EOF
}
# 自定义sys_check函数 调用以上函数
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函数并写入目录生成txt文件
sys_check > ${sys_check_file}
chmod +x cha_sys.sh
./cha_sys.sh
三、查看
在同级目录生成logs目录
目录里生成txt文件,查看当日即可