Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 25, 2014 09:44:35

EvgenKlim
Зарегистрирован: 2014-05-12
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Читать файл с сервера

Доброго времени суток!

Возникла необходимость получать данные с сервера. Но как это сделать непонятно.
Т.е. нужно чтобы программа была запущена на компьютере, коннектилась к серверу и читала определенный файл. И если в этом файле появляется запись содержащая “error”, то выводить все что после “error” в консоль программы + сохранение в определенный файл уже на моем компьютере. Т.е. мониторинг лога на появление ошибок.

Кто-н сталкивался с подобной задачей? Какие материалы необходимо изучить? может у кого-н есть пример?

Спасибо!

Офлайн

#2 Авг. 25, 2014 11:14:36

ajib6ept
От: От: От: От: От: От: От: От:
Зарегистрирован: 2013-08-04
Сообщения: 297
Репутация: +  26  -
Профиль   Отправить e-mail  

Читать файл с сервера

коннектилась к серверу и читала определенный файл

как коннект будет проходить? HTTP? sFTP? SSH?



_________________________
Python golden rule: Do not PEP 8 unto others; only PEP 8 thy self.
Don't let PEP 8 make you insanely intolerant of other people's code.

Офлайн

#3 Авг. 25, 2014 11:14:47

Kasta_neda
Зарегистрирован: 2014-06-08
Сообщения: 210
Репутация: +  6  -
Профиль   Отправить e-mail  

Читать файл с сервера

наверное два варианта, либо вешаете свой демон на удаленный пк, который мониторит файл и отправляет данные вам, либо через авторизованный доступ

Офлайн

#4 Авг. 25, 2014 11:16:13

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Читать файл с сервера

А что на сервере то есть? Web-server, может быть, или FTP?



Офлайн

#5 Авг. 25, 2014 11:53:10

EvgenKlim
Зарегистрирован: 2014-05-12
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Читать файл с сервера

как коннект будет проходить? HTTP? sFTP? SSH?
- без разницы. какой из способов наиболее легкий?

тут даже можно не мониторить файл а открыть последние 3 файла из папки и в них сделать поиск. т.к. файлы обновляются там довольно часто.

еще один вопрос - обязательно использовать клиент серверное приложение или можно обойтись без него? т.е. можно открыть файл на чтение на сервере аналогично как открываю у себя?

Отредактировано EvgenKlim (Авг. 25, 2014 11:57:30)

Офлайн

#6 Авг. 25, 2014 11:55:21

EvgenKlim
Зарегистрирован: 2014-05-12
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Читать файл с сервера

FishHook
Web-server есть

Офлайн

#7 Авг. 25, 2014 12:53:45

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Читать файл с сервера

EvgenKlim
FishHookWeb-server есть
Маленький скрипт на сервере, который отдает список файлов в определенном каталоге, в виде урла. Веб сервер настраиваем на отдачу статики из этого каталога. Ну и получаем файл по урлу.



Офлайн

#8 Авг. 25, 2014 17:08:46

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

Читать файл с сервера


FishHook
Маленький скрипт на сервере, который отдает список файлов в определенном каталоге, в виде урла. Веб сервер настраиваем на отдачу статики из этого каталога. Ну и получаем файл по урлу.

Или даже так, если не требуется высокая производительность.
python -m SimpleHTTPServer

Офлайн

#9 Авг. 28, 2014 00:40:23

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

Читать файл с сервера

У меня возникли вопросы:
1) каким образом необходимо получать статистику об ошибках и насколько оперативно
2) сколько строк вываливается в фаил
3) с какой частотой нужно проверять данные в фаиле
4) где должна отображаться статистика

___________
предположу для теста, что у тебя 1 фаил и проверять их нужно раз в 5 минут, данные ты смотришь в другом фаиле.
если устраивает такой момент то решение будет примерно такое.
1) написать скрипт который будет построчно читать фаил и искать в нём error после чего затирать этот фаил предварительно забекапив его.
2) запускать этот скрипт по крону
3) произвести синхронизацию фаила через различные методы, такие как: открытие фаила в вебсервере, bitsync, скачивание по ftp

___________
Если необходимо могу наброски сделать для 1 фаила который содержит строку с ошибкой и складывает его в отдельный фаил. насчёт скорости обработки такого скрипта точно сказать не могу. Будет хорошо если приложишь образец фаила лога.

Отредактировано sypper-pit (Авг. 28, 2014 01:19:00)

Офлайн

#10 Авг. 28, 2014 01:13:20

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

Читать файл с сервера

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 к примеру. Так же можно отсылать строчку на почту или в жаббер.

Отредактировано sypper-pit (Авг. 28, 2014 01:25:11)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version