Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Подмена файла, в который идёт запись - как?

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [*nix/Linux] >> Подмена файла, в который идёт запись - как?
Имя
Сообщение << Старые топики   Новые топики >>
Подмена файла, в который идёт запись - как? - 2012-04-06 18:16:15.790000   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
Проблема всё та же - не могу разбить лог-файл налету.
Создаю третий топик по этому поводу, но к решению проблемы подхожу опять с нового ракурса, по этому и задача уже становится достаточно уникальной и даже интересной.

Теперь вся идея крутится вокруг специфики файловой системы под Линуксом и особенностей работы с файлами, которые я пока ещё не постиг.
Есть во всей этой науке и симлинки и хардлинки и какие то там ещё средства досттупа к файлам а так же разные режимы работы с ними.
Всё это тёмный лес. Для меня. А для вас надеюсь нет и вы щас всё поймёте)

Как, в каком режиме создаётся и потом открывается лог-файл - я хз, но в результате мы имеем следующее:
Программа пишет лог в файл net.log Несколько(видимо достаточно много) раз в секунду этот лог дописывается новой инфой.
Если файл net.log удалить - логирование прекращается. Программа не пересоздаёт его.
Если этот файл переименовать скажем в newnet.log, то программа продолжает писать в newnet.log как ни в чём не бывало. После виндуса слекга странновато такое наблюдать
Каким таким чудесным образом программа приконнектилась к файлу, что ей пофигу его имя? - это просто интересно.
Ну а практический вопрос - при данных обстоятельствах, при данном режиме работы с файлом, какие я имею возможности? Могу ли я как то подменить этот файл на пустой, а оригинал(его содержимое) изъять для дальнейшей обработки? Возможно как то перенаправить запись лога на новый файл, или просто вырезать его содержимое, не прерывая записи?
Post #: 1
RE: Подмена файла, в который идёт запись - как? - 2012-04-06 21:03:32.770000   
zzsnn

Сообщений: 7459
Оценки: 680
Присоединился: 2007-09-25 07:17:14.240000
Что за приложение создаёт лог?
Post #: 2
RE: Подмена файла, в который идёт запись - как? - 2012-04-07 00:12:24.736666   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
Всё тот же сервер игры АрмА2
Post #: 3
RE: Подмена файла, в который идёт запись - как? - 2012-04-09 07:16:53.860000   
WinLinux

Сообщений: 491
Оценки: 0
Присоединился: 2008-07-18 14:06:33.563333
Если удалить [net.log/i] то вполне логично, что программа перестает в него писать, так как для это потребуется перезапустить программу, чтобы она его создала занова. Ты ранее создал тему "Ротация логов", вот с помощью этой самой ротации и происходит разбивка лога по достижению како-то заданного параметра, обычно это размер файла (лога), но оно приемлимо только в том случае если твоя программа выполняет логирование через системный syslog.

Я советую тебе снимать лог через обычный tar, который позволяет архивировать файлы, в которые идет запись. У меня в конторе есть приложение на Java, которое все время пишет в один файл. Чтобы снять лог я выполняю к примеру следующее:

1. tar czvf /tmp/my_log.tar.gz my_log.log
2. Далее остается его только скопировать и распоковать при необходимости.
Post #: 4
RE: Подмена файла, в который идёт запись - как? - 2012-04-09 07:50:57.890000   
The Joker

Сообщений: 3485
Оценки: 99
Присоединился: 2008-10-07 16:22:13.730000
Изменив имя файла, ты ведь сразу же создаёшь пустой файл со старым именем, верно? Или нет?

Давай так. Ты создаёшь скрипт примерно нижеследующего содержания (с поправками на пути, имена файлов и т.д.), делаешь его исполняемым, запускаешь и докладываешь, ок?

#! /bin/bash PATH_TO_LOGS=/var/log LOG_FILE_NAME=hrenolog TIMESTAMP=`date +%Y.%m.%d.%H.%M.%S` cp ${PATH_TO_LOGS}/${LOG_FILE_NAME}.log ${PATH_TO_LOGS}/${LOG_FILE_NAME}-${TIMESTAMP}.log cat /dev/null &gt; ${PATH_TO_LOGS}/${LOG_FILE_NAME}.log
Post #: 5
Страниц:  [1]
Все форумы >> [*nix/Linux] >> Подмена файла, в который идёт запись - как?







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.