你写一段centos服务器的运行检测脚本吗
时间: 2024-06-04 19:14:09 浏览: 15
作为AI语言模型,我可以提供一份CentOS服务器的运行检测脚本,但需要注意的是,这个脚本并不是适用于所有的CentOS服务器,因为每个服务器的配置和运行环境都不同,所以需要根据具体情况进行修改。
#!/bin/bash
# 检查系统负载
loadavg=$(cat /proc/loadavg | awk '{print $1,$2,$3}')
echo "Current system load: $loadavg"
# 检查CPU使用率
cpuusage=$(top -b -n1 | grep "Cpu(s)" | awk '{print $2 + $4}')
echo "Current CPU usage: $cpuusage%"
# 检查内存使用情况
memtotal=$(free -m | grep "Mem:" | awk '{print $2}')
memused=$(free -m | grep "Mem:" | awk '{print $3}')
memusage=$(echo "scale=2; $memused/$memtotal*100" | bc)
echo "Current memory usage: $memusage%"
# 检查磁盘使用情况
diskusage=$(df -h | awk '{print $5}' | grep -v Use | sort -n | tail -1 | sed 's/%//')
echo "Current disk usage: $diskusage%"
# 检查网络连接情况
netstat -an | grep -E "(LISTEN|ESTABLISHED)" | awk '{print $1}' | sort | uniq -c > /tmp/netstat.tmp
echo "Current network connections:"
cat /tmp/netstat.tmp
# 检查服务运行情况
services=("nginx" "httpd" "mysql" "redis")
for service in "${services[@]}"
do
if systemctl is-active $service >/dev/null 2>&1; then
echo "$service is running"
else
echo "$service is not running"
fi
done
# 检查日志
tail -n 100 /var/log/messages > /tmp/messages.tmp
echo "Recent system messages:"
cat /tmp/messages.tmp
# 删除临时文件
rm /tmp/netstat.tmp
rm /tmp/messages.tmp
# 发送邮件
mail -s "Server status report" your_email@example.com < $0
这个脚本可以检查系统负载、CPU使用率、内存使用情况、磁盘使用情况、网络连接情况、服务运行情况以及最近的系统日志,并将结果发送到指定的邮箱。需要注意的是,这个脚本需要使用root权限才能运行。