Найти - Пользователи
Полная версия: Читать файл с сервера
Начало » Python для новичков » Читать файл с сервера
1
EvgenKlim
Доброго времени суток!

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

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

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

как коннект будет проходить? HTTP? sFTP? SSH?
Kasta_neda
наверное два варианта, либо вешаете свой демон на удаленный пк, который мониторит файл и отправляет данные вам, либо через авторизованный доступ
FishHook
А что на сервере то есть? Web-server, может быть, или FTP?
EvgenKlim
как коннект будет проходить? HTTP? sFTP? SSH?
- без разницы. какой из способов наиболее легкий?

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

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

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

Или даже так, если не требуется высокая производительность.
python -m SimpleHTTPServer
sypper-pit
У меня возникли вопросы:
1) каким образом необходимо получать статистику об ошибках и насколько оперативно
2) сколько строк вываливается в фаил
3) с какой частотой нужно проверять данные в фаиле
4) где должна отображаться статистика

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

___________
Если необходимо могу наброски сделать для 1 фаила который содержит строку с ошибкой и складывает его в отдельный фаил. насчёт скорости обработки такого скрипта точно сказать не могу. Будет хорошо если приложишь образец фаила лога.
sypper-pit
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 к примеру. Так же можно отсылать строчку на почту или в жаббер.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB