首页 帮助中心 常见问题 监控Linux网络磁盘运行时间负载及RAM 的 Shell 脚本
监控Linux网络磁盘运行时间负载及RAM 的 Shell 脚本
时间 : 2024-12-05 10:28:18 编辑 : 华纳云 阅读量 : 225

Linux系统管理员的职责重大,需要实时的监控服务器、用户、日志、创建备份等,执行重复性的任务时会选择编写脚本来自动执行日常工作,今天和大家分享一个可用于提供关于系统、网络、用户、负载、RAM、主机、内部IP、外部IP、正常运行时间等信息的shell脚本。可以定期收集这些数据并将其输出到日志文件或显示在终端上。

示例:

#!/bin/bash
# 日志文件路径
LOGFILE="/var/log/system_monitor.log"
# 创建或清空日志文件
: > $LOGFILE
# 定义监控函数
monitor() {
    # 获取当前日期和时间
    TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
    # 获取系统运行时间和负载
    UPTIME=$(uptime -p)
    LOAD=$(uptime | awk -F'load average:' '{ print $2 }')
    # 获取内存使用情况
    MEM_TOTAL=$(free -m | awk '/^Mem:/{print $2}')
    MEM_USED=$(free -m | awk '/^Mem:/{print $3}')
    MEM_FREE=$(free -m | awk '/^Mem:/{print $4}')
    # 获取磁盘使用情况
    DISK_USAGE=$(df -h | grep '^/dev/' | awk '{ print $1 ": " $5 " used" }')
    # 获取网络流量
    NETWORK=$(ifconfig | awk '/RX packets/{print $1 " " $2 " " $3} /TX packets/{print $1 " " $2 " " $3}')
    # 将收集到的数据写入日志文件
    echo "[$TIMESTAMP]" >> $LOGFILE
    echo "Uptime: $UPTIME" >> $LOGFILE
    echo "Load Average: $LOAD" >> $LOGFILE
    echo "Memory Usage: Total: ${MEM_TOTAL}MB, Used: ${MEM_USED}MB, Free: ${MEM_FREE}MB" >> $LOGFILE
    echo "Disk Usage: $DISK_USAGE" >> $LOGFILE
    echo "Network Traffic: $NETWORK" >> $LOGFILE
    echo "----------------------------------------" >> $LOGFILE
}
# 循环监控并记录
while true; do
    monitor
    sleep 60
done

其中日志文件路径: LOGFILE 变量指定日志文件的位置,你可以根据需要更改。

monitor 函数: 收集系统指标并将其记录到日志文件中。

uptime 命令获取系统运行时间和负载。

free 命令获取内存使用情况。

df 命令获取磁盘使用情况。

ifconfig 命令获取网络流量(可以替换为 ip 命令以适应新的网络配置工具)。

循环监控并记录: while true 循环每隔 60 秒执行一次 monitor 函数。

可以直接把上述脚本存为一个文件,如system_monitor.sh。赋予可执行权限:

chmod +x system_monitor.sh

运行该脚本:

sudo ./system_monitor.sh

该脚本需要使用者具有root权限可以访问某些系统信息和网络流量统计信息。确保日志文件路径有写权限。可以修改sleep 60来调整监控间隔。以上脚本可以用于CentOS8上监控网络、磁盘、运行时间、负载和RAM,并且把这些信息都记录在日志文件中,便于后期分析。更多内容请关注华纳云

华纳云 推荐文章
管理Linux磁盘分区常用的fdisk命令有哪些 安装Redis任意版本shell脚本 Linux VPS服务器CPU负载及内存占用自动重启bash shell脚本 linux磁盘分区挂载的步骤是什么 使用shell脚本如何查看日志某个信息? windows如何运行shell脚本 常见的Linux磁盘数据修复工具 ubuntu中怎么传参数到shell脚本 Linux磁盘管理—检验、挂载与卸除 Ubuntu系统配置apache2.4的限速功能shell脚本分享
活动
客服咨询
7*24小时技术支持
技术支持
渠道支持