遠端檢查只讀文件系統
我需要遠端定期檢查 Linux 文件系統是否以只讀方式安裝在許多伺服器上。在這種情況下,我可以使用的唯一工具是常用的 CLI 腳本語言(BASH/Perl/Python)、SSH 和 SNMP。
到目前為止,我的想法是:
- 共享 SSH 密鑰並遠端執行掛載命令,grep/awk-ing 獲取給定掛載點上的 RO 標誌。
- 通過 SNMP 檢查,雖然我不確定此資訊是否可用或是否容易。
- 嘗試 SCP 跨過文件,或遠端觸摸文件。
SNMP 方法是我能想到的最好/最乾淨的方法,但是我不知道如何做到這一點,因為 CLI SNMP 似乎是一場噩夢,特別是如果我需要通過決策過程來查找基於索引的索引給定的掛載點。
理想情況下,我只想使用 BASH(包括 sed/awk/grep 等)和 SNMP 來完成此任務,但需要一些關於從哪裡開始的指導!snmpd 已在所有相關伺服器上安裝並配置為 v2。
該腳本的最終用途將是作為 Nagios 命令。
非常感謝您的幫助!
注意 我們已經有 cacti/nagios 設置監控 100 台伺服器,我在最初發帖時忘記提及這一點!
在您
snmpd.conf
檢查 exec 參數時。我使用它來遠端輪詢我的一些 IRC 伺服器的使用者數,如下所示:exec usercount-irc /home/irc/usercount-irc.sh
要輪詢這個你 snmpwalk .1.3.6.1.4.1.2021.8,會得到這樣的東西:
# snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.8 UCD-SNMP-MIB::extIndex.1 = INTEGER: 1 UCD-SNMP-MIB::extNames.1 = STRING: usercount-irc UCD-SNMP-MIB::extCommand.1 = STRING: /home/irc/usercount-irc.sh UCD-SNMP-MIB::extResult.1 = INTEGER: 0 UCD-SNMP-MIB::extOutput.1 = STRING: 558 UCD-SNMP-MIB::extErrFix.1 = INTEGER: 0 UCD-SNMP-MIB::extErrFixCmd.1 = STRING:
檢查http://linux.die.net/man/5/snmpd.conf的擴展代理功能部分以獲取更多詳細資訊!
編輯 1:
UCD-SNMP-MIB:dskTable 包含有關已安裝捲和使用情況的資訊。它位於 OID .1.3.6.1.4.1.2021.9 下並記錄在:
http ://www.oidview.com/mibs/2021/UCD-SNMP-MIB.html
http://www.net-snmp.org/ docs/mibs/ucdavis.html#dskTable
但我現在看到它不包含掛載標誌,所以你看不到只讀在那裡。嘎。回到上面的腳本以及如何呼叫它!:P