首页 帮助中心 新加坡高防服务器 监控 Linux 网络磁盘运行时间负载及RAM 的 Shell 脚本
监控 Linux 网络磁盘运行时间负载及RAM 的 Shell 脚本
时间 : 2024-12-05 10:28:18 编辑 : 华纳云 阅读量 : 121

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中生成和使用MD5验证文件指南 Linux中.bz2文件压缩和解压的方法 使用FFmpeg来计算linux视频总帧数 RPM软件包定义及卸载一般步骤 MacOS 访问 Linux NFS 共享文件夹的方法 Linux中创建和管理隐藏文件流程 Ubuntu系统中删除有问题PPA存储库 如何在IIS6和IIS7.5中禁用WebDAV Linux中用Nginx和Gunicorn 托管 Django的步骤 用C# ZXing.Net生成和识别二维码及生成带logo的二维码
客服咨询
7*24小时技术支持
技术支持
渠道支持