EvgenKlim
Авг. 25, 2014 09:44:35
Доброго времени суток!
Возникла необходимость получать данные с сервера. Но как это сделать непонятно.
Т.е. нужно чтобы программа была запущена на компьютере, коннектилась к серверу и читала определенный файл. И если в этом файле появляется запись содержащая “error”, то выводить все что после “error” в консоль программы + сохранение в определенный файл уже на моем компьютере. Т.е. мониторинг лога на появление ошибок.
Кто-н сталкивался с подобной задачей? Какие материалы необходимо изучить? может у кого-н есть пример?
Спасибо!
ajib6ept
Авг. 25, 2014 11:14:36
коннектилась к серверу и читала определенный файл
как коннект будет проходить? HTTP? sFTP? SSH?
Kasta_neda
Авг. 25, 2014 11:14:47
наверное два варианта, либо вешаете свой демон на удаленный пк, который мониторит файл и отправляет данные вам, либо через авторизованный доступ
FishHook
Авг. 25, 2014 11:16:13
А что на сервере то есть? Web-server, может быть, или FTP?
EvgenKlim
Авг. 25, 2014 11:53:10
как коннект будет проходить? HTTP? sFTP? SSH?
- без разницы. какой из способов наиболее легкий?
тут даже можно не мониторить файл а открыть последние 3 файла из папки и в них сделать поиск. т.к. файлы обновляются там довольно часто.
еще один вопрос - обязательно использовать клиент серверное приложение или можно обойтись без него? т.е. можно открыть файл на чтение на сервере аналогично как открываю у себя?
EvgenKlim
Авг. 25, 2014 11:55:21
FishHook
Web-server есть
FishHook
Авг. 25, 2014 12:53:45
EvgenKlim
FishHookWeb-server есть
Маленький скрипт на сервере, который отдает список файлов в определенном каталоге, в виде урла. Веб сервер настраиваем на отдачу статики из этого каталога. Ну и получаем файл по урлу.
Alen
Авг. 25, 2014 17:08:46
FishHook
Маленький скрипт на сервере, который отдает список файлов в определенном каталоге, в виде урла. Веб сервер настраиваем на отдачу статики из этого каталога. Ну и получаем файл по урлу.
Или даже так, если не требуется высокая производительность.
python -m SimpleHTTPServer
sypper-pit
Авг. 28, 2014 00:40:23
У меня возникли вопросы:
1) каким образом необходимо получать статистику об ошибках и насколько оперативно
2) сколько строк вываливается в фаил
3) с какой частотой нужно проверять данные в фаиле
4) где должна отображаться статистика
___________
предположу для теста, что у тебя 1 фаил и проверять их нужно раз в 5 минут, данные ты смотришь в другом фаиле.
если устраивает такой момент то решение будет примерно такое.
1) написать скрипт который будет построчно читать фаил и искать в нём error после чего затирать этот фаил предварительно забекапив его.
2) запускать этот скрипт по крону
3) произвести синхронизацию фаила через различные методы, такие как: открытие фаила в вебсервере, bitsync, скачивание по ftp
___________
Если необходимо могу наброски сделать для 1 фаила который содержит строку с ошибкой и складывает его в отдельный фаил. насчёт скорости обработки такого скрипта точно сказать не могу. Будет хорошо если приложишь образец фаила лога.
sypper-pit
Авг. 28, 2014 01:13:20
myfile = open("test.txt", "rU") #чтение из файла
for line in myfile.xreadlines(): #построчно читаем файл
if "error" in mylines: # делает поиск в строке
with open('errors.txt', 'a', encoding='utf-8') as myerrors: # записывает в новый фаил
print(mylines, file=myerrors)
Это черновой набросок, написан без проверки в реальности. Если будет фаил примера будет проще проверить.
Проблема скрипта в его перегрузке на сервере, если будет долго работать то фаил будет безумно рости , нужно тогда еще доработать чтоб лог не рос бесконечно, а только в течении недели или каждый день создовался новый фаил для лога с использованием datatime к примеру. Так же можно отсылать строчку на почту или в жаббер.