您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
编写高效的服务器监控Shell脚本可以帮助你实时了解服务器的性能和状态。以下是一个基本的模板和一些常用的监控命令,你可以根据自己的需求进行扩展和修改。
#!/bin/bash
# 设置日志文件路径
LOG_FILE="/var/log/server_monitor.log"
# 获取当前日期和时间
DATE=$(date +"%Y-%m-%d %H:%M:%S")
# 记录开始时间
echo "Server monitoring started at $DATE" >> $LOG_FILE
# 监控CPU使用率
CPU_USAGE=$(top -bn1 | grep load | awk '{printf("CPU Load: %.2f%%\n", $(NF-2))}')
echo "$CPU_USAGE" >> $LOG_FILE
# 监控内存使用率
MEMORY_USAGE=$(free | grep Mem | awk '{printf("Memory Usage: %.2f%%\n", $3/$2 * 100)}')
echo "$MEMORY_USAGE" >> $LOG_FILE
# 监控磁盘使用率
DISK_USAGE=$(df -h | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output;
do
echo $output >> $LOG_FILE
done
# 监控网络流量
NETWORK_TRAFFIC=$(ifconfig eth0 | grep 'RX packets' | awk '{print "Network Traffic (Received): " $4}')
echo "$NETWORK_TRAFFIC" >> $LOG_FILE
# 监控进程数
PROCESS_COUNT=$(ps -e | wc -l)
echo "Number of running processes: $PROCESS_COUNT" >> $LOG_FILE
# 记录结束时间
echo "Server monitoring ended at $DATE" >> $LOG_FILE
top
命令获取CPU负载,并通过awk
提取相关信息。free
命令获取内存使用情况,并通过awk
计算使用率。df
命令获取磁盘使用情况,并通过awk
提取相关信息。ifconfig
命令获取网络接口的接收数据包数量。ps
命令获取当前运行的进程数。你可以根据需要添加更多的监控功能,例如:
pgrep
或ps
命令监控特定进程的运行状态。iostat
命令监控磁盘的读写速度。tail
命令实时查看系统日志文件。mail
或notify-send
命令发送警报通知。# 监控特定进程
PROCESS_NAME="nginx"
PROCESS_COUNT=$(pgrep -c $PROCESS_NAME)
if [ $PROCESS_COUNT -eq 0 ]; then
echo "Process $PROCESS_NAME is not running!" >> $LOG_FILE
fi
# 监控磁盘I/O
DISK_IO=$(iostat -dx | grep sda | awk '{print "Disk I/O: " $3 " kB/s read, " $7 " kB/s write"}')
echo "$DISK_IO" >> $LOG_FILE
通过这些示例和扩展功能,你可以编写一个功能全面的服务器监控Shell脚本,帮助你实时了解服务器的性能和状态。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。