效果图:
Code:
#!/bin/bash
#system runing info
#Now system runing Times
#CPU info
CPU_INFO=$(top -n1 |grep "Cpu(s):" |awk '{print echo "CPU使用率(%):"$2 echo "%"}')
#Disk info
DISK_INFO=$(df -hT |grep /dev/vda1 |awk '{print echo "硬盘使用率(%):"$6}')
#Mem Info
Mem_INFO=$(free -h |grep Mem |awk '{print echo "剩余内存:"$7}')
#80
Prot=$(nmap 127.0.0.1 |grep 80 |awk '{print $2}')
#3306
Prot1=$(nmap 127.0.0.1 |grep 3306 |awk '{print $2}')
#dateTime
Time=$(date +%F)
#UPTIME #这是系统已经运行时间代码,脚本放在下面
Uptime=$(sh /mail/uptime.sh)
#FuZai
local=$(uptime |awk '{print $8,$9,$10}')
#系统在线用户
vu=$(who |wc -l)
upname=$(who |awk '{print echo "用户名:"$1, echo "IP:"$5}')
#统计进程数
run=$(ps -aux |wc -l)
#输出
echo "当前主机名:$(hostname) "
echo "------------------------------------------------------------------------ "
echo "$CPU_INFO "
echo "------------------------------------------------------------------------ "
echo "$DISK_INFO "
echo "------------------------------------------------------------------------ "
echo "Web:$Prot MySQL:$Prot1 "
echo "------------------------------------------------------------------------"
echo "$Mem_INFO"
echo "------------------------------------------------------------------------"
echo "$Uptime"
echo "------------------------------------------------------------------------"
系统已经运行时长代码:(摘抄别人的,但忘记出处了。。。):
cat /proc/uptime| awk -F. '{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("系统已运行:%d天%d时%d分%d秒",run_days,run_hour,run_minute,run_second)}'
Ps:代码中有几个是引用其他脚本文件的,位置是/mail/文件夹下,改成自己的即可
还有一个就是脚本中使用了nmap软件,用来查看MySQL(3306)和Web(80)端口是否打开。要用的话有的机器可能没装,需要先装一下:
yum -y install nmap
再次PS:我用这个是配置了Linux的计划任务每天定时运行,然后发送到我邮箱里面,系统负载那里我用的awk截取有点问题,大家改一下…