最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux命令編寫一個(gè)用于監(jiān)控系統(tǒng)資源的腳本

 更新時(shí)間:2026年06月02日 09:26:12   作者:不拘小節(jié)的竹筍_ecLhal  
這篇文章主要為大家詳細(xì)介紹了如何通過Linux命令編寫一個(gè)用于監(jiān)控系統(tǒng)資源的腳本,支持CPU、內(nèi)存、磁盤使用率和系統(tǒng)負(fù)載等監(jiān)控項(xiàng),希望對(duì)大家有所幫助

介紹

我給你寫一個(gè)開箱即用、功能完整、格式清晰的 Linux 監(jiān)控腳本,支持監(jiān)控:

  • CPU 使用率
  • 內(nèi)存使用率
  • 磁盤使用率
  • 系統(tǒng)負(fù)載
  • 網(wǎng)絡(luò)流量
  • 進(jìn)程 TOP 5

腳本會(huì)自動(dòng)格式化輸出,可以定時(shí)運(yùn)行、日志記錄、也可配合告警使用。

完整腳本:sys_monitor.sh

#!/bin/bash
# ==============================================
# Linux 系統(tǒng)資源監(jiān)控腳本
# 功能:CPU / 內(nèi)存 / 磁盤 / 負(fù)載 / 網(wǎng)絡(luò) / 進(jìn)程
# ==============================================
# 日志輸出文件(可自定義)
LOG_FILE="/var/log/sys_monitor.log"
# 獲取當(dāng)前時(shí)間
CURRENT_TIME=$(date "+%Y-%m-%d %H:%M:%S")
# ==============================================
# 1. 輸出標(biāo)題
# ==============================================
echo -e "\n==================================================" | tee -a $LOG_FILE
echo "系統(tǒng)監(jiān)控報(bào)告 - $CURRENT_TIME" | tee -a $LOG_FILE
echo "==================================================" | tee -a $LOG_FILE
# ==============================================
# 2. 系統(tǒng)版本與主機(jī)信息
# ==============================================
echo -e "\n?? 主機(jī)信息:" | tee -a $LOG_FILE
hostnamectl | grep "Static hostname" | awk '{print "主機(jī)名: " $3}' | tee -a $LOG_FILE
hostnamectl | grep "Operating System" | cut -d: -f2 | tee -a $LOG_FILE
hostnamectl | grep "Kernel" | cut -d: -f2 | tee -a $LOG_FILE
# ==============================================
# 3. CPU 使用率
# ==============================================
echo -e "\n?? CPU 使用情況:" | tee -a $LOG_FILE
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *([0-9.]*)%* id.*/\1/" | awk '{print 100 - $1}')
echo "CPU 總使用率: $CPU_USAGE%" | tee -a $LOG_FILE
# ==============================================
# 4. 內(nèi)存使用率
# ==============================================
echo -e "\n?? 內(nèi)存使用情況:" | tee -a $LOG_FILE
free -h | awk 'NR==2{
    printf "總內(nèi)存: %s\n已用: %s\n空閑: %s\n使用率: %.2f%%\n", $2, $3, $4, $3/$2*100
}' | tee -a $LOG_FILE
# ==============================================
# 5. 系統(tǒng)負(fù)載(1/5/15分鐘)
# ==============================================
echo -e "\n?? 系統(tǒng)負(fù)載:" | tee -a $LOG_FILE
uptime | awk '{print "1分鐘負(fù)載: " $10 "  5分鐘負(fù)載: " $11 "  15分鐘負(fù)載: " $12}' | tee -a $LOG_FILE
# ==============================================
# 6. 磁盤使用率(根分區(qū) /)
# ==============================================
echo -e "\n?? 磁盤使用率:" | tee -a $LOG_FILE
df -h / | awk 'NR==2{
    printf "總?cè)萘? %s\n已用: %s\n可用: %s\n使用率: %s\n", $2, $3, $4, $5
}' | tee -a $LOG_FILE
# ==============================================
# 7. 網(wǎng)絡(luò)流量(網(wǎng)卡名可自行修改)
# ==============================================
echo -e "\n?? 網(wǎng)絡(luò)流量(網(wǎng)卡 eth0):" | tee -a $LOG_FILE
# 若網(wǎng)卡不是 eth0,用 ip addr 查看后替換
sar -n DEV 1 1 | grep eth0 | awk 'NR==3{
    printf "接收流量: %.2f MB/s\n發(fā)送流量: %.2f MB/s\n", $5/1024, $6/1024
}' | tee -a $LOG_FILE
# ==============================================
# 8. 占用資源最高的 5 個(gè)進(jìn)程
# ==============================================
echo -e "\n?? TOP5 占用 CPU 最高進(jìn)程:" | tee -a $LOG_FILE
ps -aux --sort=-%cpu | head -6 | awk '{printf "%-8s %-6s %-6s %s\n", $1, $2, $3, $11}' | tee -a $LOG_FILE
echo -e "\n?? TOP5 占用內(nèi)存最高進(jìn)程:" | tee -a $LOG_FILE
ps -aux --sort=-%mem | head -6 | awk '{printf "%-8s %-6s %-6s %s\n", $1, $2, $4, $11}' | tee -a $LOG_FILE
# ==============================================
# 結(jié)束
# ==============================================
echo -e "\n==================================================\n" | tee -a $LOG_FILE

使用方法

創(chuàng)建腳本

vi sys_monitor.sh

把上面代碼粘貼進(jìn)去,保存退出。

賦予執(zhí)行權(quán)限

chmod +x sys_monitor.sh

運(yùn)行

./sys_monitor.sh

查看日志

cat /var/log/sys_monitor.log

腳本效果預(yù)覽

==================================================
系統(tǒng)監(jiān)控報(bào)告 - 2025-12-17 15:30:00
==================================================

?? 主機(jī)信息:
主機(jī)名: localhost
Operating System: CentOS Stream 9
Kernel: Linux 5.14.0-xxx

?? CPU 使用情況:
CPU 總使用率: 12.5%

?? 內(nèi)存使用情況:
總內(nèi)存: 7.6Gi
已用: 2.3Gi
空閑: 4.1Gi
使用率: 30.20%

...

可選增強(qiáng)功能(你可以直接加進(jìn)去)

超過閾值自動(dòng)告警(示例)

# 磁盤使用率超過 85% 告警
DISK_USAGE=$(df -h / | grep / | awk '{print $5}' | sed 's/%//g')
if [ $DISK_USAGE -gt 85 ]; then
    echo "??  磁盤使用率過高!當(dāng)前:$DISK_USAGE%" | tee -a $LOG_FILE
    # 可以發(fā)郵件、企業(yè)微信、釘釘告警
fi

定時(shí)監(jiān)控(每分鐘執(zhí)行)

crontab -e

添加:

* * * * * /root/sys_monitor.sh

到此這篇關(guān)于Linux命令編寫一個(gè)用于監(jiān)控系統(tǒng)資源的腳本的文章就介紹到這了,更多相關(guān)Linux監(jiān)控系統(tǒng)資源內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • linux云主機(jī)安裝pdo詳細(xì)教程

    linux云主機(jī)安裝pdo詳細(xì)教程

    這篇文章主要介紹了linux云主機(jī)安裝pdo詳細(xì)教程,網(wǎng)上搜到一個(gè)幾個(gè)還算清晰的教程,但是沒加說明,很多站長(zhǎng)按照做了,中途出現(xiàn)錯(cuò)誤,便不知如何解決了,這里特整理一下方便需要的朋友
    2017-08-08
  • Linux使用Expect腳本實(shí)現(xiàn)自動(dòng)化交互操作

    Linux使用Expect腳本實(shí)現(xiàn)自動(dòng)化交互操作

    Expect是一個(gè)基于Tcl的工具,用于自動(dòng)化處理需要輸入的交互式命令,它可以模擬人類與程序交互,實(shí)現(xiàn)無人值守的自動(dòng)化流程,文章介紹了Expect的基礎(chǔ)使用、常見場(chǎng)景,并提供了Java集成示例,同時(shí),文章還討論了Expect的局限性、替代方案及性能優(yōu)化建議,需要的朋友可以參考下
    2026-04-04
  • Linux 添加永久靜態(tài)路由的方法

    Linux 添加永久靜態(tài)路由的方法

    本篇文章主要介紹了Linux 添加永久靜態(tài)路由的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • linux系統(tǒng)安裝msf的過程詳解

    linux系統(tǒng)安裝msf的過程詳解

    這篇文章主要介紹了linux系統(tǒng)安裝msf的過程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • linux下如何創(chuàng)建守護(hù)進(jìn)程的步驟

    linux下如何創(chuàng)建守護(hù)進(jìn)程的步驟

    本篇文章主要介紹了linux下如何創(chuàng)建守護(hù)進(jìn)程的步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • Ubuntu14.04安裝、配置與卸載QT5的步驟詳解

    Ubuntu14.04安裝、配置與卸載QT5的步驟詳解

    這篇文章主要介紹了Ubuntu14.04安裝、配置與卸載QT5詳細(xì)步驟,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Ubuntu Apache配置以及cgi配置方法

    Ubuntu Apache配置以及cgi配置方法

    這篇文章主要介紹了Ubuntu Apache配置以及cgi配置方法,需要的朋友可以參考下
    2015-10-10
  • Linux使用join -a1來合并兩個(gè)文件

    Linux使用join -a1來合并兩個(gè)文件

    今天小編就為大家分享一篇關(guān)于Linux使用join -a1來合并兩個(gè)文件,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • apache中偽靜態(tài)配置和使用(Apache虛擬主機(jī)下Discuz偽靜態(tài))

    apache中偽靜態(tài)配置和使用(Apache虛擬主機(jī)下Discuz偽靜態(tài))

    apache中偽靜態(tài)配置和使用(Apache虛擬主機(jī)下Discuz偽靜態(tài)),需要的朋友可以參考下。
    2012-01-01
  • Linux使用watch命令監(jiān)控Docker容器狀態(tài)的操作方法

    Linux使用watch命令監(jiān)控Docker容器狀態(tài)的操作方法

    在現(xiàn)代的開發(fā)和運(yùn)維環(huán)境中,容器化技術(shù)已經(jīng)成為一種重要的趨勢(shì),而Docker作為最流行的容器化平臺(tái)之一,Linux中的watch命令就是一個(gè)非常有用的工具,它可以幫助我們定期執(zhí)行指定的命令,并全屏顯示輸出,本文給大家介紹了在Linux中使用watch命令監(jiān)控Docker容器狀態(tài)
    2024-10-10

最新評(píng)論

招远市| 资中县| 宿州市| 永胜县| 武邑县| 九江县| 罗平县| 廊坊市| 监利县| 虞城县| 纳雍县| 凤山县| 赤壁市| 清镇市| 贵德县| 越西县| 山丹县| 佛山市| 成都市| 井研县| 泉州市| 社会| 枞阳县| 浮山县| 巩留县| 靖州| 长寿区| 江永县| 蒙阴县| 杂多县| 郎溪县| 当雄县| 永兴县| 手机| 永新县| 门源| 黄陵县| 湖口县| 镇远县| 闽清县| 武冈市|