![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| afybc |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 23.7.2008 Репутация: нет Всего: нет |
Syslog пишет лог в файл. Этот файл имеет огромный размер. Мне нужно написать скрипт который будет висеть в кроне, парсить этот лог и добавлять новые записи в базу. Как мне сделать так, чтобы не модифицировать лог и при этом не парсить его с самого начала?
|
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
afybc, надо сохранять позицию (полученную вызовом tell()), до которой скрипт дошел при очередной обработке, в "удобном месте". При старте скрипта считывать это значение и перемещать текущий указатель для файлового дескриптора лога при помощи seek().
Это сообщение отредактировал(а) ginnie - 7.11.2008, 17:55 -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| afybc |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 23.7.2008 Репутация: нет Всего: нет |
Спасибо, думал об этом, но кроме базы больше нигде не могу сохранять. А использовать БД для переменной как-то не особо хочется. Если не ошибаюсь в perl'e есть возможность сохранять переменные в теле скрипта? Если я прав, то подскажите как.
|
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
afybc, а в файл никак нельзя?
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| afybc |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 23.7.2008 Репутация: нет Всего: нет |
Можно, но хочется узнать именно про возможность сохранения в теле скрипта, если она конечно же существует.
|
|||
|
||||
| afybc |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 23.7.2008 Репутация: нет Всего: нет |
Нашел как.
Use the __DATA__ or __END__ tokens after your program code to mark the start of a data block, which can be read inside your program or module from the DATA filehandle.
Это сообщение отредактировал(а) afybc - 8.11.2008, 11:12 |
|||
|
||||
| sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 14 Всего: 31 |
afybc, ну и что вы этим добьетесь ?
вы можете оттуда прочитать переменную. но записать туда что - то вы не сможите. точнее это не сохранится. Так что - пишите в файл! назовите мне причину по которой вы не сможете писать в файл ? |
|||
|
||||
| amg |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
|
||||
|
|||||
| afybc |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 23.7.2008 Репутация: нет Всего: нет |
Спасибо, amg. Воспользовался Вашим решением.
|
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |