Snmpを介してチェックを実行するコマンドを実行しようとしています。
私はDebian6.0を使用しています
これが私のsnmpd.confファイルです
rwcommunity public 172.23.129.0/29
syslocation "Blah
syscontact [email protected]
sysname belleville.domain.net
sysdescr "Syslog Domain Server"
disk /
load 5 10 10
#exec 1.3.6.1.4.1.2021.8 /usr/bin/python /usr/local/domain/tools/check-syslog.py
exec 1.3.6.1.4.1.2021.8 /usr/bin/python /tmp/check-syslog.py
Snmpgetの出力は次のとおりです。
snmpget -Of -cpublic -v1 belleville 1.3.6.1.4.1.2021.8.1.101.1
.iso.3.6.1.4.1.2021.8.1.101.1 = STRING: "/usr/bin/python: can't open file '/tmp/check-syslog.py': [Errno 13] Permission denied"
ファイルの権限は711であり、所有者は/ tmpフォルダーにあるroot:rootであるため、権限の問題を理解していません。とにかく、このスクリプトはrootユーザーによって実行されますね。とにかく700で十分なはずですか?これは、このエラーメッセージがあっても、これは許可の問題のようには見えないと思います。
私は誰かがこの問題に遭遇したことがあり、私にいくつかのアドバイスを与えることができることを願っています:/
アドバイスをありがとう:)
スクリプトは/tmp
にあるとおっしゃいました。 /tmp
パーティションはnoexec
にマウントされていますか?それは時折混乱の原因となる可能性があります。
snmpdは、rootとは異なるアカウントで実行される場合もあります。
「id」を実行するテストスクリプトを実行してチェックアウトします。
それがまさにあなたの問題であるかどうかはわかりません。同じものに遭遇しましたが、extend
があり、名前が必要で、OIDは必要ありません。したがって、誤って構成されたsnmpは、コマンドラインの最後の部分のみを実行していました。 t実行可能ファイル。
あなたの変種:
exec 1.3.6.1.4.1.2021.8 /usr/bin/python /tmp/check-syslog.py
/usr/bin/python
と名前を定義し、インタプリタなしで/tmp/check-syslog.py
のみを実行しようとします
拡張子名がcheck-syslog
の場合は修正してください:
exec 1.3.6.1.4.1.2021.8 check-syslog /usr/bin/python /tmp/check-syslog.py