2016-11-10 288 views
2

我有一個簡單的bash腳本調用test_snmp,讓我們說:如何使用snmpget通過SNMP傳遞腳本變量?

#!/bin/bash 
echo $1 

我已經設置的snmpd.conf如下:

rwcommunity public 127.0.0.1 
extend .1.3.6.1.4.1.2021.53 /bin/bash /tmp/test_snmp 

我想什麼做的是運行snmpwalk的命令,是這樣的:

snmpwalk -v2c -c public 127.0.0.1 .1.3.6.1.4.1.2021.53 "PRINT SOMETHING" 

從輸出我看到 OID = iso.3.6.1.4.1.2021.53.3.1.1.9.47.98.105.110.47.98.97.115.104 = 「」,是輸出的腳本。但是我想通過使用snmpget命令將字符串「PRINT SOMETHING」作爲$ 1參數傳遞給上述腳本,然後使用snmpget命令獲取字符串(如「PRINT SOMETHING」),如下所示:

snmpget -v2c -c public 127.0.0.1 iso.3.6.1.4.1.2021.53.3.1.1.9.47.98.105.110.47.98.97.115.104 

這只是一個例子,我通過snmp運行腳本來測試我有什麼選項。因爲如果這有效,那麼我將編寫另一個腳本來遠程運行,但我必須使用變量運行它們。

有誰知道該怎麼做?

謝謝

+0

您是否找到了答案?我想知道這一點。 –

回答

0

我花了很多時間才找到所有答案。我希望,這將是某人的起點,並會節省時間。

/etc/snmp/snmpd.conf中:

rwcommunity public 
pass .1.3.6.1.4.1.YOUR_NUM_HERE.1 /path/to/your/script.sh 

/path/to/your/script.sh:

#!/bin/bash 

case "$1" in 
    -g) // GET Req 
     echo $2 # ANSWER OID 
     echo "string" # string/int/etc... 
     echo "you data" # 
    ;; 
    -s) // SET Req 
    # Your code for processing SET Req 
    exit 0 
    ;; 

    -n) // GETNEXT Req 

     echo $2 
     echo "string" 
     # Your code for processing GETNEXT Req 
    ;; 
    *) 
    ;; 
esac 

您可以後使用snmpwalk的並在「-n」大小寫之後放置代碼。 如果是snmpget,您的代碼將位於「-g」後面

相關問題