Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Запись в дава файла оновременно (Linux)
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
vzn
Есть программа, которая кроме всего прочего ведет логи. Необходимо дублировать эти логи на другое устройство через сеть Ethernet.

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

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

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

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

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

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

Спасибо.
Olej
Цитата(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 - только это сильно круто: лезть в ядро ОС для решения столь прикладной задачи...
KA_ru
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
id_gene
Для отражения файла можно использовать ссылку :
ln -s target_file link_file
#создать ссылку в подмонтированной папке

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


Будут.
Но при этом дескриптор обращения к этому файлу остаётся единичным, так что поставленную задачу это не решает: так можно организовывать отображение 2->1, а по задаче нужно: 1->2 ;(.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.