LINUX.ORG.RU

npsync — утилита для синхронизации не-POSIX хранилищ

 non-posix, ,


2

2

Утилита npsync позволяет синхронизировать содержимое хранилищ с не-POSIX интерфейсами. Список возможностей включает:

  • шаблоны/файлы включения/исключения синхронизируемых файлов и директорий;
  • проверка контрольных сумм для выявления ошибок типа «тихая порча данных»;
  • расширяемость с помощью утилит доступа к хранилищам с не-POSIX интерфейсом;
  • список реализованных интерфейсов включает POSIX-хранилища, иерархическую систему хранения CASTOR, встроенный каталог в текстовом формате NPSYNC.

Основная область применения — синхронизация/проверка хранилищ с не-POSIX интерфейсами с объёмами хранимых данных десятки/сотни терабайт. Но и для POSIX-хранилищ встроенный каталог может быть полезен при регулярной проверке для своевременного выявления ошибок типа «тихая порча данных» и восстановления из неповреждённой копии.

Утилита npsync выложена на github в публичный доступ.

Руководство на русском https://github.com/bubo-bubo/npsync/blob/master/man/ru/man1/npsync.1.html

>>> Подробности

★★

Проверено: fallout4all ()
Последнее исправление: fallout4all (всего исправлений: 2)

Что, черт побери, такое «POSIX-хранилище». Это так обзывается ФС в моём *nix'е?

asaw ★★★★★
()

а пример не-посикс хранилища можно?

что б работал npsync нужен баш?

kerzol
()

Ссылка на ман радует.

AnDoR ★★★★★
()

ненужное ненужно

давайте на каждый велосипед постить новость? и что такое «не-посикс хранилище»?

anonymous
()
Ответ на: комментарий от A-234

read в цикле? Это уже не модно много лет как, mmap рулит.

Откуда уверенность, что какое-то не-POSIX говно поддерживает mmap вообще и mmap на запись в частности?

tailgunner ★★★★★
()
Ответ на: комментарий от A-234

да, конечно, аж два раза. ты кажется гдето потерялся во времени.

cvv ★★★★★
()
Ответ на: комментарий от A-234

read в цикле? Это уже не модно много лет как, mmap рулит.

В случае MAP_PRIVATE & PROT_READ - совершенно не нужно. Особенно если файл надо лишь раз считать и закрыть, как в этой утилитке, а не оставлять отображённым для последующих обращений.

anonymous
()
Ответ на: комментарий от A-234

Это уже не модно много лет как, mmap рулит.

Побенчмаркай, удивишься.

kawaii_neko ★★★★
()
Ответ на: комментарий от A-234

В код загляните, прежде чем абстрактно рассуждать.

В гипотетический код, где npsync использует mmap?

Где вы там ENODEV раскопали, теоретик?

facepalm.jpg

В man mmap загляни, практик:

       ENODEV The underlying file system of the specified file does  not  sup‐
              port memory mapping.
tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

The mmap() function is supported for regular files, the special file /dev/zero, and anonymous memory. mmap() on any another type of file returns an error with errno set to ENODEV.

Маны тоже читать надо не отрывками. Ясен пень что стримы или procfs не маппируются. Так что возражений по существу у вас, я так понимаю, нет.

A-234 ★★★★★
()
Ответ на: комментарий от kawaii_neko

Возможно наш мохнатый друг намекает что в какойто libc при реализации стримов вместо malloc() предпочли mmap(MAP_ANONYMOUS), но я больше склонен считать что он под веществами

cvv ★★★★★
()
Ответ на: комментарий от A-234

А что, NIX-системы только в защищённом режиме работают? Вроде как бы ... есть для i80286 Linux-like системы, там никакой mmap() не имеет смысла, поскольку нет VM pages.

pacify ★★★★★
()
Ответ на: комментарий от pacify

И что мне ответить на «вроде как бы»? На самом деле mmap возможен и на 286 поскольку есть виртуальная память, страничная адресация тут камнем преткновения не является. По сути mmap это тоже кэширование памяти, вместо страниц будут сегменты, только и всего. Но 286 cpu это такая экзотика, Linux уже 386 не поддерживает. 286 процессор 16-ти разрядный и жрет как не в себя, его даже в embedded использовать глупо, не то что на десктопе.

A-234 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.