Возникли проблемы при запуске функции ifstat с cronjob - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь настроить cronjob, чтобы каждый час получать данные ifstat с удаленного сервера и записывать данные в файл .txt. Я написал скрипт на python для запуска ifstat (который работает, когда я запускаю его независимо от cronjob), и я протестировал синтаксис cronjob, который кажется правильным.

Я попытался протестировать синтаксис cronjob с помощью другого (почти идентичного) сценария, выполняющего функцию netstat -s вместо ifstat, и она работает без каких-либо проблем. Сценарий ifstat работает правильно при вызове непосредственно в оболочке linux.

Это скрипт, который у меня есть - я недавно добавил дату для устранения неполадок.

#!/usr/bin/python
import subprocess, sys
import datetime

cmd = 'ifstat'

p = subprocess.Popen(cmd, shell=True, stderr=subprocess.PIPE)
print('\n')
print(datetime.datetime.today())

Это у меня cronjob.

0 * * * * ./data/ifstat.py >> data/ifstat.txt

РЕДАКТИРОВАТЬ: я сделал небольшое изменение в коде, удалив переменную cmd и добавив ifstat непосредственно в функцию Popen. Приведенный выше код вызывал функцию ifstat в отдельной команде (т. Е. В новой строке в оболочке) после выполнения даты. Новый код запускается непосредственно все в одной строке.

Также для дополнительной информации. Когда я запускаю скрипт напрямую и добавляю текст, он работает. Только кажется, что не работает в cronjob ...

./ifstat.py >> ifstat.txt

^ это работает из каталога, содержащего оба файла

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...