如果您在每臺計算機上都有一個密鑰,並且您的監測主機可以登錄ssh remotehost
,那麼您就有了收集所需信息所需的全部功能。
#!/bin/bash
servers=(wopr gerty mother)
fmt="%s\t%s\t%s\n"
printf "$fmt" "Host" "UIDs" "Highest"
printf "$fmt" "----" "----" "-------"
count='awk "END {print NR}" /etc/passwd' # avoids whitespace problems from `wc`
highest="awk -F: '\$3>n&&\$3<60000{n=\$3} END{print n}' /etc/passwd"
for server in ${servers[@]}; do
printf "$fmt" "$server" "$(ssh "$server" "$count")" "$(ssh "$server" "$highest")"
done
結果對我來說:
$ ./doit.sh
Host UIDs Highest
---- ---- -------
wopr 40 2020
gerty 37 9001
mother 32 534
注意,這使得兩個SSH連接到每個服務器收集每個數據。如果您想更有效地做到這一點,你可以捆綁的信息集成到一個稍微複雜的收集腳本:(相同的結果)
#!/usr/local/bin/bash
servers=(wopr gerty mother)
fmt="%s\t%s\t%s\n"
printf "$fmt" "Host" "UIDs" "Highest"
printf "$fmt" "----" "----" "-------"
gather="awk -F: '\$3>n&&\$3<60000{n=\$3} END{print NR,n}' /etc/passwd"
for server in ${servers[@]}; do
read count highest < <(ssh "$server" "$gather")
printf "$fmt" "$server" "$count" "$highest"
done
啊!我怎麼錯過scp :(我可以不用密碼就做scp,把這個腳本推送到所有遠程服務器的/ tmp目錄並運行ssh來執行它們......多數民衆贊成在提醒我 – Satish
如果你打算在每個系統上安裝東西無論如何,爲什麼不能一路走下去並使用像Munin這樣的完整工具呢?您可以添加自定義信息,隨着時間的推移繪製您的結果圖,如果主機變得無法訪問,則設置通知。監控很好。:-)有說明在[在Munin文檔中]使用yum在Linux系統上安裝Munin(http://munin-monitoring.org/wiki/LinuxInstallation#InstallationonCentOS5)。 – ghoti