Как расширенный агент snmp может читать текстовые файлы через оболочку или python? Дает мне разрешение отклонено из-за ошибки чтения файла - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть скрипт python, который читает последнюю строку текстового файла (присутствует в папке location / home / anas / projects) и печатает его. Текстовый файл содержит одно значение с плавающей запятой в каждой строке. Когда я запускаю этот скрипт python из терминала, он работает нормально. Проблема у меня в том, что я хочу использовать этот скрипт с snmp. Поэтому я использовал расширение snmp и добавил

extend    snmp-datarate /usr/bin/python2.7 /usr/local/bin/snmp-feedback.py

в файл /etc/snmp/snmpd.conf. и когда я запускаю эту команду

snmpwalk -v2c -c public 127.0.0.1 NET-SNMP-EXTEND-MIB::nsExtendObjects

, она выдает мне следующую ошибку:
NET -SNMP-EXTEND-MIB :: nsExtendOutLine. "snmp-datarate" .4 = STRING: OSError: [Errno 13] Отказано в доступе: '/ home / anas / projects'

Теперь я подумал, что это может произойти из-за использования python, поэтому я также попробовал сценарий оболочки, назвав его snmp-agra-datarate. sh, который имеет только две строки кода

#!/bin/bash
echo $( tail -n 1 /home/anas/projects/6780-log.txt )

Запуск этого сценария из терминала дает ожидаемый результат. Затем я расширил snmp с помощью

extend    datarate      /usr/local/bin/snmp-agra-datarate.sh

, а затем снова попытался запустить snmp walk. я получаю похожую ошибку
NET -SNMP-EXTEND-MIB :: nsExtendOutLine. "datarate" .2 = STRING: tail: не могу открыть '/home/anas/projects/6780-log.txt' для чтение: Отказано в доступе

Что-то мне не хватает для чтения внешнего текстового файла с python или оболочкой для расширенного агента snmp?
-я использую Ubuntu 16.04 LTS и net -snmp v5.8
-Both python и сценарии оболочки имеют разрешения на выполнение. (я сделал chmod 755)
-текстовый файл также имеет все разрешения

1 Ответ

0 голосов
/ 16 апреля 2020

Сообщение об ошибке

В доступе отказано: '/ home / anas / projects'

указывает на разрешения для этого каталога. Если это слишком ограничительно, то snmpd не может go там.

Чтобы решить проблему, выполните

ls -ld / home / anas / projects

и это даст вам подсказку.

...