如何使用Linux自動回報系統狀態

可以用NodeRED,寫一個收資料的API,然後在Linux中去跑如下的Script,這樣就會自動回報該主機的CPU、RAM跟剩餘空間。

#!/bin/bash

# Function to get CPU usage
get_cpu_usage() {
    cpu_usage=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
    echo "$cpu_usage"
}

# Function to get memory usage
get_memory_usage() {
    memory_usage=$(free | awk '/Mem/{printf("%.2f"), $3/$2*100}')
    echo "$memory_usage"
}

# Function to get disk usage for /dev/vda1
get_disk_usage_vda1() {
    disk_usage_vda1=$(df -h /dev/vda1 | awk 'NR==2 {print $5}' | sed 's/%//')
    echo "$disk_usage_vda1"
}

# Function to get remaining disk space for /dev/vda1
get_disk_space_vda1() {
    disk_space_vda1=$(df -h /dev/vda1 | awk 'NR==2 {print $4}' | sed 's/G//')
    echo "$disk_space_vda1"
}


# API URL vda1
api_url="http://nodeRED的網址:1880/ReportServInfo?token=用令牌確保安全性&data=\{\"MACHINE_NAME\":\"主機名稱\",\"CPU_USAGE\":$(get_cpu_usage),\"RAM_USAGE\":$(get_memory_usage),\"STORAGE_DEVICE\":\[\{\"DEVICE\":\"vda1\",\"AVAILABLE_SPACE\":\"$(get_disk_space_vda1)GB\",\"USED_USAGE\":$(get_disk_usage_vda1)\}\]\}"

# Call API
curl "$api_url"

More From Forest Beat

桜のフリ

設定Docker中node-Red的掛載

容器最強的部份,就是把資料分離出來,因此要設定給容器一個host的掛載位置,那麼設定檔與資料內容就會分離出來,並存放在host的資料夾中。在Synology NAS,要先建好一個給Docker專用的「共用資料夾」,然後在該共用下建立新的資料夾,記得要設定為明確權限,並且給予Everyone的寫入權限,這樣就可以囉。
技術
0
minutes
三ツ峠の紅葉のフリ

Docker安裝node-Red設定檔settings.js的位置

如果採用不將資料掛載出來的方式建立dockek的NodeRED,那設定檔會在哪邊呢? 要如何進行修改呢?答案很簡單,要能夠終端機到容器中,然後編輯/usr/src/node-red/node_modules/node-red/settings.js
技術
0
minutes
チューリップ畑のフリ

Docker使用bridge與host網路的差異

Docker使用bridge網路的好處是封閉但是可以聯網,容器彼此之間也無法辦訪,可以做到簡單的隔離,port可以與host重複,反正在轉port即可。host網路就有點危險了,就是實實在在以host的網路進行連線,因此同網路中,能夠看見它,除此之外,不可以與host主機使用相同的port,例如80已經被host用掉的,就不能再容器中使用80。
技術
0
minutes
つくしのフリ

用Docker佈署新的服務

下載專用的Image檔後,就可以副本產生容器,所以要有多少個都沒問題。因為是共用Image檔案所以會很省空間,另外資料可以掛載出來,這樣又能做到完全分離,例如Mariadb資料庫,可以把資料與設定檔掛載出來,日後要重灌或更新容器就很簡單。
技術
0
minutes
spot_imgspot_img