реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Запись в дава файла оновременно (Linux), Как это сдельть простейшим образом?
vzn
сообщение Sep 14 2005, 10:20
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 32
Регистрация: 1-07-05
Пользователь №: 6 454



Есть программа, которая кроме всего прочего ведет логи. Необходимо дублировать эти логи на другое устройство через сеть Ethernet.

Из доступных ресурсов, есть только возможности ядра. syslog -демона нет. Другое программное обеспечение кроме ядра и пользовательского приложения не рекомендуется. Система встариваимая ресурсы памяти ограничены.

Решения видится следующее.
1.Примонтирвовать удаленную фаловую систему и писать логи в два файла самому.
Вопрос: ядро само посебе позволяет монтировать удаленные файловые системы? Или нужны еще дополнительно какие-то клиенты и сервера соответственно (Возможности Linux знаю плохо, прошу сильно не пинать)

2. Писать в один файл и каким либо образом сказать ядру чтобы информацию в файле хранил в друх местах на своей файловой системе и на удаленной примонтированной. Ну типа делаешь fopen() для одного фала а на саммом деле ядро делает два и хранит одно и тоже в дух местах. Места эти соответственно настраиваются: одно локальное, другое на удаленном модуле.

Есть ли возможность в ядре как, то определить фалы, которые дублируются в двух местах? Типа RAID, но только на уровне файлов, а не устройств.
Где про это можно почитать? Или RAID это оно и есть?

3. "Демон копирования" отдельное простенькое стандартное приложение которое смотрит на файл, если тот изменился тут же изменения дублирует в другое место. (примонтированая фаловая система на удаленном устройстве)
Главное чтобы копировалось только изменение, а не весь файл так как лог может быть большим.
Кто знает название такого демона? что он умеет ? где его найти?

Где можно почитать вообще про возможности ядра Linux(что там можна утилизировать полезного)?

Спасибо.
Go to the top of the page
 
+Quote Post
Olej
сообщение Sep 14 2005, 11:39
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 351
Регистрация: 11-09-05
Из: Харьков
Пользователь №: 8 458



Цитата(vzn @ Sep 14 2005, 13:20)
Есть программа, которая кроме всего прочего ведет логи. Необходимо дублировать эти логи на другое устройство через сеть Ethernet.
*


Вариант 1: можно рассылать через сеть Ethernet (это же TCP/IP, наверное? не на MAC же уровне?) лог-информацию multicast-ингом (214.Х.Х.Х) на группу из 2-х хостов, один из которых localhost, на каждом из которых работает специализированный демон регистрации в файл.

Цитата(vzn @ Sep 14 2005, 13:20)
1.Примонтирвовать удаленную фаловую систему и писать логи в два файла самому.
Вопрос: ядро само посебе позволяет монтировать удаленные файловые системы? Или нужны еще дополнительно какие-то клиенты и сервера соответственно (Возможности Linux знаю плохо, прошу сильно не пинать)
*


Никаких native удалённых файловых систем в Linux (UNIX, POSIX) нет - для этого должна бы быть некая "микросеть", как QNET в QNX. Всё равно это придётся использовать внешний tools, наверное, лучше всего: NFS - вот ним можно и примонтировать.

Цитата(vzn @ Sep 14 2005, 13:20)
2. Писать в один файл и каким либо образом сказать ядру чтобы информацию в файле хранил в друх местах на своей файловой системе и на удаленной примонтированной. Ну типа делаешь fopen() для одного фала а на саммом деле ядро делает два и хранит одно и тоже в дух местах. Места эти соответственно настраиваются: одно локальное, другое на удаленном модуле.
*

Это вряд ли... wink.gif.
Можете попробовать отобразить (mmap()) дважды на разные файлы одну область shared memory, и писать в неё... может и повезёт wink.gif.

Цитата(vzn @ Sep 14 2005, 13:20)
3. "Демон копирования" отдельное простенькое стандартное  приложение которое смотрит на файл, если тот изменился тут же изменения дублирует в другое место. (примонтированая фаловая система на удаленном устройстве)
Главное чтобы копировалось только изменение, а не весь файл так как лог может быть большим.
Кто знает название такого демона?  что он умеет ? где его найти?
*

Так задача: только дописывание файлов (тогда это "лог"), или синхронизации файлов (тогда это средства репликации, ивсё куда сложнее)?
Если вам нужно только синхронно дописывать лог-файлы - посмотрите в сторону команды tee:
# my-dumper | tee -a /var/log/my-data.log >> /mnt/my-nfs/var/log/my-data.log

Цитата(vzn @ Sep 14 2005, 13:20)
Где можно почитать вообще про возможности ядра Linux(что там можна утилизировать полезного)?
*

Скотт Максвел, "Ядро Linux в комментариях", К.: "ДиаСофт", 2000 wink.gif - только это сильно круто: лезть в ядро ОС для решения столь прикладной задачи...
Go to the top of the page
 
+Quote Post
KA_ru
сообщение Sep 14 2005, 16:42
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 424
Регистрация: 4-10-04
Из: Berlin
Пользователь №: 775



V linukse est' demony zadach. minutnyj chasovoj nedel'nyj i tak dalee.
Pishite sckipt ego podkljuchaete k demonu (kakomu xotite)
a tam kak xotite sami vse v dashix rukax. smile.gif
Go to the top of the page
 
+Quote Post
id_gene
сообщение Sep 15 2005, 07:03
Сообщение #4


carpe manana
***

Группа: Свой
Сообщений: 321
Регистрация: 2-06-05
Пользователь №: 5 659



Для отражения файла можно использовать ссылку :
ln -s target_file link_file
#создать ссылку в подмонтированной папке

При этом обращение в ссылку будет попадать в оригинал.

Сообщение отредактировал id_gene - Sep 15 2005, 07:04
Go to the top of the page
 
+Quote Post
Olej
сообщение Sep 15 2005, 07:57
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 351
Регистрация: 11-09-05
Из: Харьков
Пользователь №: 8 458



Цитата(id_gene @ Sep 15 2005, 10:03)
При этом  обращение в ссылку будет попадать в оригинал.
*


Будут.
Но при этом дескриптор обращения к этому файлу остаётся единичным, так что поставленную задачу это не решает: так можно организовывать отображение 2->1, а по задаче нужно: 1->2 ;(.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 21:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01355 секунд с 7
ELECTRONIX ©2004-2016