GoGPT Best VPN GoSearch

Значок OnWorks

clsync - онлайн у хмарі

Запустіть clsync у постачальнику безкоштовного хостингу OnWorks через Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS

Це команда clsync, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн емулятор Windows або онлайн емулятор MAC OS

ПРОГРАМА:

ІМ'Я


clsync - інструмент живої синхронізації, написаний на GNU C

СИНТАКСИС


clsync [ ... ] -- [ аргументи обробника синхронізації ]

ОПИС


clsync виконує обробник синхронізації з відповідними аргументами щодо подій FS у каталозі
годинник-реж використання прищеплювати(7) або інші підсистеми моніторингу ФС.

ВАРІАНТИ


Ці параметри можна передавати як аргументи або використовувати у файлі конфігурації.

Щоб вимкнути числові параметри, установіть нульові значення:
=0

Щоб вимкнути параметр рядка (наприклад, шлях до файлу), установіть порожній рядок:
=

Також ви можете використовувати раніше встановлені значення під час встановлення нових параметрів. Підрядок %option_name%
буде замінено на раніше встановлене значення опції імя_опціі. (подивитися КОНФІГУРАЦІЯ
Фото)

аргументи обробника синхронізації стосується лише режимів:
простий, прямий, оболонка, rsyncdirect, rsyncshell

Встановити аргументи обробника синхронізації у файлі конфігурації використовуйте '--'. Приклад:
-- = -aH --exclude-from %EXCLUDE-LIST% --include-from=%INCLUDE-LIST% --exclude '*'
%watch-dir%/ %destination-dir%/

-W, -- годинник-реж годинник-реж
Кореневий каталог, який буде відстежуватися clsync.

Вимагається.

-S, --обробник синхронізації обробник синхронізації
Шлях до обробник синхронізації використовувати для синхронізації clsync. (подивитися --режим)

Необхідний для всіх режимів, крім "direct" і "rsyncdirect" [див SYNC ПЕРЕКЛАДЧИК
РЕЖИМИ]

-Р, --файл-правила файл правил
Шлях до файлу з правилами фільтрації об'єктів, які слід відстежувати. (побачити ПРАВИЛА)

Не встановлено за замовчуванням.

-Д, --пункт призначення-реж каталог призначення
Визначає каталог для синхронізації для режимів "rsyncdirect", "rsyncso" і "so". (побачити
--режим)

Не встановлено за замовчуванням.

-М, --режим режим
Встановлює режим синхронізації. Можливі значення:
простий
дзвінки обробник синхронізації для кожної події
прямий
дзвінки обробник синхронізації для кожної синхронізації з передачею файлів списки як
аргументація
оболонка
дзвінки обробник синхронізації для кожної синхронізації з передачею списків файлів у файлі
rsyncdirect
викликає rsync за шляхом обробник синхронізації безпосередньо
rsyncshell
дзвінки обробник синхронізації який повинен запускати rsync для кожної синхронізації
(рекомендований режим)"
rsyncso
завантажує спільний об'єкт за шляхом обробник синхронізації з dlopen(3) і дзвонить
функція clsyncapi_rsync функція для кожної синхронізації
so
завантажує спільний об'єкт за шляхом обробник синхронізації з dlopen(3) і дзвонить
функція clsyncapi_sync функція для кожної синхронізації

Читати SYNC ПЕРЕКЛАДЧИК РЕЖИМИ

Вимагається.

-б, -фон
Daemonize, змушуючи clsync до fork() під час запуску.

Не встановлено за замовчуванням.

-Н, --файл конфігурації шлях до конфігураційного файлу
Використовуйте конфігурацію з файлу шлях до конфігураційного файлу (Див. КОНФІГУРАЦІЯ Фото).

Встановіть значення "/NULL/", якщо файли конфігурації не читаються.

Не встановлено за замовчуванням.

-К, --config-блок config-block-name
Використовуйте блок конфігурації з назвою config-block-name (Див. КОНФІГУРАЦІЯ Фото).

Значенням за замовчуванням є "за замовчуванням".

--config-block- успадковує config-parent-block-name
Використовуйте блок конфігурації з назвою config-parent-block-name як батько для
config-block-name (Див. КОНФІГУРАЦІЯ Фото). Варіанти від config-parent-block-name
буде успадковано config-block-name.

Значенням за замовчуванням є "за замовчуванням".

--користувацькі сигнали нестандартні сигнали
Встановіть список сигналів і відповідні назви блоків конфігурації. Блок конфігурації буде
використовувати для лову відповідного сигналу.

Формат є
signal:config-block-name[,signal:config-block-name[,...]]

Наприклад:
--custom-signals=29:debug,28:normal
У цьому рядку сигнали "28" і "29" будуть додані до сігхендлера. І clsync
використовуватиме параметри з блоку конфігурації "debug" за сигналом 29 і "normal" за сигналом 28.

Щоб скинути всі користувацькі сигнали, використовуйте 0-й сигнал (наприклад, "--custom-signals=0").

Значенням за замовчуванням є "".

-z, --pid-файл шлях до pid-файлу
Записує pid у файл за шляхом шлях до pid-файлу.

Не встановлено за замовчуванням.

--файл статусу статус-файл-шлях
Запишіть опис статусу у файл із шляхом статус-файл-шлях.

Можливі статуси:
початок
ініціалізація підсистем і позначення дерева файлів за допомогою монітора FS
підсистема
initsync
обробка початкової синхронізації
біг
очікування подій або синхронізації
синхронізатор помилка
очікування між спробами виконання синхронізатора (після збою) [є
використовувався лише поки -- нарізка ниток=вимкнено]
перешивання
перезавантаження файлів конфігурації
нитка gc
запущений сміттєзбірник потоків
попередній вихід
виконання --pre-exit-hook
закінчення
запуск останньої ітерації (якщо потрібно) і підготовка до смерті
вихід
виконання --вихід-гачок і прибирання [за валгринд(1)]

Не встановлено за замовчуванням.

-р, --повторна спроба кількість спроб
Намагається обмежити синхронізацію з обробник синхронізації.

clsync помре після кількість спроб намагається.

Щоб спробувати нескінченний набір "0".

Затримка між спробами дорівнює --затримка-синхронізація value.

Значення за замовчуванням "1".

--ігнорувати невдачі
Не вмирайте від збоїв синхронізації.

Не встановлено за замовчуванням.

--exit-on-sync-skip
Вийдіть, якщо якусь подію можна було пропустити з будь-якої причини.

Наприклад, FreeBSD має дуже коротку чергу подій BSM (1024). Так може бути
переповнені і деякі події не можуть піднятися в чергу. Цей варіант змушує clsync до
вихід, якщо черга була переповнена.

Не встановлено за замовчуванням.

-p, -- нарізка ниток потоковий режим
Скористайтеся кнопкою pthreads(7) для розпаралелювання процесів синхронізації. Наприклад, якщо clsync
--threading=вимкнено) вже синхронізує величезний файл, тоді всі інші синхронізації будуть
призупинено до завершення синхронізації величезного файлу. Щоб запобігти цьому призупинення, ви можете використовувати
«безпечний» або «повний» режим потокової обробки.

Можливі значення:
від
вимкнути потоки для синхронізації процесів.
сейф
паралелізувати синхронізацію, але призупинити синхронізацію об’єктів, які вже є
синхронізація в іншому процесі (до завершення процесу).
Повний
паралелізувати синхронізацію без призупинення.

Характеристики:
від
Нові модифікації не будуть синхронізовані до завершення старих.
сейф
Теоретично це найкращий спосіб. Але може використовувати багато ЦП, якщо
є багато одночасних паралельних синхронізацій. (також цього шляху немає
добре перевірено)
Повний
Може викликати багаторазову синхронізацію одного і того ж файлу, який в
поворот може викликати помилку всередині обробник синхронізації (Дивіться нижче).

Якщо ти біжиш clsync з опцією --threading=повний в поєднанні з rsync
з опцією --резервне копіювання, ви можете виявити помилку через неатомічність файлу rsync
замінити операцію. (побачити ДІАГНОСТИКА)

Значенням за замовчуванням є "вимкнено".

-Y, - вихід журнал-призначення
Встановлює місце призначення для запису журналу (помилки, попередження, інформація та налагодження).

Можливі значення:
stderr
stdout
системний журнал

Значенням за замовчуванням є "stderr".

--одна файлова система
Не слідкуйте за точками кріплення різних пристроїв. Ця опція просто додає опцію
"FTS_XDEV" для fts_open(3) функція.

Увага! Якщо ви використовуєте цю опцію (але без --exclude-mount-points) clsync волі
write не включає і не виключає вміст точок монтування.
Це може спричинити проблеми, наприклад, ви використовуєте rsync для обробника синхронізації без подібного
параметр "--one-file-system".

Не встановлено за замовчуванням.

-X, --exclude-mount-points
Війська --одна файлова система але також додайте виключення, щоб не синхронізувати точки монтування.

Це вимагає зробити stat(2) системні виклики для кожного каталогу і можуть знизити продуктивність.

Не встановлено за замовчуванням.

--розетка сокет-шлях
Створіть контрольний сокет за шляхом сокет-шлях.

Це дуже експериментальна функція.

Не встановлено за замовчуванням.

--власна розетка socket-owner-user[:socket-owner-group]
Встановлює користувача (і групу) власника контрольного сокета.

Не встановлено за замовчуванням

--socket-mod режим розетки
Встановлює режим контрольної розетки [див CHMOD(2)].

Не встановлено за замовчуванням.

-- резервний файл резервний шлях до файлу
Встановлює шлях для файлу, який слід перевіряти перед кожною синхронізацією. Якщо файл існує, синхронізація
буде призупинено, доки файл не буде видалено. Це може бути корисно, якщо вам потрібно заморозити
цільового каталогу під час виконання деяких скриптів.

Не встановлено за замовчуванням.

--максимальні ітерації ітерацій-рахунок
Встановлює ліміт ітерацій синхронізації. Одна ітерація означає один обробник синхронізації
виконання.

ітерацій-рахунок
значення 0 означає відсутність обмежень (нескінченний цикл).

значення 1 означає, що буде виконана лише початкова синхронізація

значення n означає, що буде лише початкова синхронізація та (n-1) синхронізація після цього
зроблений

Підказка: цей параметр може бути корисним у поєднанні з --exit-on-no-events для запобігання
нескінченні процеси синхронізації.

Значення за замовчуванням "0".

-- зміна-підпис підпис-маска
Встановлює підпис повторної перевірки змінення файлу/директора. Якщо файл не змінено (відповідно до
підпис), то не синхронізувати його.

Читати структура stat in lstat(2) для можливих полів.

Наприклад, розумно підпис-маска-s може бути
"dev,ino,mode,uid,gid,rdev,size,atime,mtime,ctime" (для цього є псевдонім —
"*") або "uid,gid".

Приклади випадків використання:
chown/chmod
Якщо ви використовуєте clsync для виправлення привілеїв файлів/каталогів [using Чаун(1)
та / або CHMOD(1)] ніж розумний підпис буде "uid,gid".

Повний приклад: clsync -w5 -t5 -T5 -x1 -W
/var/www/site.example.org/root -Mdirect -Schown --uid 0 --gid 0
-Ysyslog -b1 -- modification-signature uid, gid -- --from=root
www-дані:www-дані %INCLUDE-LIST%
двонаправлений синхронізація
Якщо ви збираєтеся налаштувати двонаправлену синхронізацію, ви можете скористатися
--modification-signature "*" для запобігання циклу синхронізації між серверами.
Чи не досить центральний процесор
Якщо rsync з’їдає занадто багато ЦП, перевіряючи хеш-суми файлів на своєму
сухі open()/close() через якийсь хакерський скрипт (наприклад, "chown -R
www-data:www-data" в cron), то ви можете використовувати --modification-signature
"dev,ino,mode,uid,gid,rdev,size,atime,mtime" (без "blksize",
«блоки», «nlink» і «ctime»).

Увага! Цей довідник - варіант може є a багато of пам'ять on величезний файл дерева.

Цей параметр не можна використовувати разом із "--cancel-syscalls=mon_stat"

Щоб вимкнути повторну перевірку змін файлів/каталогів, використовуйте порожнє значення — «».

Значенням за замовчуванням є "".

-к, --timeout-sync тайм-аут синхронізації
Встановлює час очікування для синхронізації процесів. clsync помре, якщо процес синхронізації буде активніше
ніж тайм-аут синхронізації секунд.

Встановіть "0", щоб вимкнути тайм-аут.

Значенням за замовчуванням є "86400" ["24 години"].

-w, --затримка-синхронізація додаткова затримка
Встановлює мінімальну затримку (у секундах) між синхронізаціями.

Значення за замовчуванням "30".

-t, --затримка-збирати звичайний-затримка
Встановлює затримку (у секундах) для збору подій про звичайні файли та каталоги.

Значення за замовчуванням "30".

-Т, --delay-collect-bigfile bigfiles-затримка
Встановлює затримку (у секундах) для збору подій про «великі файли» (див
--поріг-великий файл).

Значення за замовчуванням "1800".

-Б, --поріг-великий файл пороговий розмір файлу
Встановлює поріг розміру файлу (у байтах), який відокремлює звичайні файли від «великих файлів».
Події про «великі файли» обробляються в іншій черзі з окремим збором
затримка. Передбачається, що це буде використано як засіб розвантаження ресурсів IO.

Щоб вимкнути виявлення «великих файлів», установіть «0» (нуль). Це може покращити продуктивність шляхом
усуваючи необхідність додаткового системного виклику lstat().

Значенням за замовчуванням є "134217728" ["128 МБ"].

--cancel-системні виклики маска системних викликів
Встановлює системні виклики для обходу. Це можна використовувати для підвищення продуктивності.

Можливі значення:
mon_stat
Пропускати виклики lstat() під час обробки подій файлів/dirs. Це робить
неможливо визначити розміри файлів (які використовуються
--поріг-великий файл option) і використовувати option
-- зміна-підпис.

Ви можете комбінувати ці значення за допомогою коми.

Щоб вимкнути цю опцію, просто використовуйте порожнє значення — «».

Значенням за замовчуванням є "".

-Л, --списки-реж tmpdir-шлях
Встановлює шлях до каталогу для виведення тимчасових файлів зі списками подій.

Читати SYNC ПЕРЕКЛАДЧИК РЕЖИМИ.

Не встановлено за замовчуванням.

--have-recursive-sync
Використовуйте дію "recursivesync" замість "synclist" для каталогів, які були просто
позначені (див SYNC ПЕРЕКЛАДЧИК РЕЖИМИ випадок оболонка).

Не встановлено за замовчуванням.

--synclist-simplify
Видаляє перші 3 параметри у файлах списку дії «synclist» (див SYNC ПЕРЕКЛАДЧИК
РЕЖИМИ випадок оболонка).

Не встановлено за замовчуванням.

--rsync-inclimit rsync-includes-line-limit
Встановлює м’яке обмеження для кількості рядків у файлах за шляхом rsync-listpath. На жаль,
rsync працює дуже повільно з величезними файлами "--include-from". Так, clsync розбиває це
список з приблизно rsync-includes-line-limit рядків у списку, якщо він занадто великий,
і виконується одним екземпляром rsync на частину списку. Використовуйте значення "0", щоб вимкнути
ліміт.

Значення за замовчуванням "20000".

--rsync-prefer-include
Війська clsync віддавати перевагу методу "багато включає" замість "виключає+включає"
для rsync під час рекурсивної синхронізації.

Дивіться випадки rsyncshell, rsyncdirect та rsyncso of SYNC ПЕРЕКЛАДЧИК РЕЖИМИ.

Цей варіант не рекомендується.

Не встановлено за замовчуванням.

-x, --ignore-exitcode код виходу
Війська clsync щоб не обробляти код виходу код виходу of обробник синхронізації як помилка. ти
можна встановити кілька ігнорів, передаючи цю опцію кілька разів.

Рекомендовані значення для регістру rsync — «24». Ви можете встановити кілька значень за допомогою списку
багато опцій "-x" (наприклад, "-x 23 -x 24") або через кому (наприклад, "-x 23,24"). Впустити
у списку використовується нульовий код виходу (наприклад, "-x 0"). Наприклад, ви можете використовувати "-x 0,23", щоб скинути
список і встановіть "23"-й код виходу, який ігнорується.

Не встановлено за замовчуванням (або рівною мірою встановлено на "0").

-У, --dont-unlink-lists
Не видаляйте файли списку після обробник синхронізації закінчився.

Це може бути використано для налагодження.

Не встановлено за замовчуванням.

--fts-experimental-optimization
Увімкніть експериментальні функції, щоб оптимізувати сканування дерева файлів під час використання футів(3).
Функції будуть увімкнені за замовчуванням після відповідного тестування.

На даний момент ця опція нічого не робить, але може використовуватися в майбутньому.

Не встановлено за замовчуванням.

-F, --full-initialsync
Ігнорувати правила фільтра від файл правил при початковій синхронізації.

Це може бути корисно для швидкого запуску або, наприклад, якщо потрібно синхронізувати "/ var / log /"
дерево, але не синхронізувати кожну зміну звідти.

Не встановлено за замовчуванням.

--only-initialsync
Вийдіть після початкової синхронізації під час запуску clsync.

Не встановлено за замовчуванням.

--вихід без подій
Вийдіть, якщо немає подій. Працює як --only-initialsync, але також синхронізує події
зібрано під час початкової синхронізації.

на відміну від --only-initialsync цей параметр використовує підсистему моніторингу FS для моніторингу нових
події під час початкової синхронізації. Це може знизити продуктивність. З іншої сторони
цей спосіб можна використовувати, щоб бути впевненим, що все синхронізовано на попередній момент
clsync вийде.

Не встановлено за замовчуванням.

--skip-initialsync
Пропустити початкову синхронізацію під час запуску clsync.

Не встановлено за замовчуванням.

--вихід-гачок шлях-виходу-гачок-програма
Встановлює шлях програми, яка буде виконана при виході з clsync.

Якщо цей параметр встановлено, clsync виконуватиметься під час виходу:
шлях-виходу-гачок-програма етикетка

Виконання буде пропущено, якщо початкова синхронізація не була завершена.

Не встановлено за замовчуванням.

--pre-exit-hook шлях-програми-гачок перед-виходу
Встановлює шлях програми, яка буде виконана перед останньою ітерацією синхронізації (див
--максимальні ітерації, --вихід без подій та СИГНАЛИ).

Якщо цей параметр встановлено, clsync виконуватиметься під час виходу:
шлях-програми-гачок перед-виходу етикетка

Виконання буде пропущено, якщо початкова синхронізація не була завершена.

If clsync закінчується завдяки --вихід без подій та --pre-exit-hook встановлюється тоді
буде виконано гачок попереднього виходу, і буде запущена додаткова ітерація синхронізації.

Не встановлено за замовчуванням.

-v, -багатослівний
Цей варіант має збільшити багатослівність. Але на даний момент немає
"докладний висновок" у коді, тому параметр нічого не робить. :)

Не встановлено за замовчуванням.

-d, --відлагоджувати
Збільшує вихід налагодження. Це може бути надано кілька разів для додаткового налагодження
інформацію, максимум до п’яти прапорів «d» (більше нічого не дасть), наприклад
"-d -d -d -d -d" або "-d5" (еквівалентні випадки)

Не встановлено за замовчуванням.

--звалища-dir
Каталог для запису інформації про екземпляр clsync за сигналом 29 (див СИГНАЛИ).
каталог не повинен існувати до дампування.

За замовчуванням встановлено значення "/tmp/clsync-dump-%label%".

-q, --спокійно
Пригнічує повідомлення про помилки.

Не встановлено за замовчуванням.

--монітор монітор-підсистема
Перемикачі підсистеми монітору FS.

Можливі значення:
прищеплювати
прищеплювати(7) [Linux, (FreeBSD через libinotify)]

Вбудована, швидка, надійна та добре перевірена підсистема моніторингу Linux FS.

Немає істотного прибутку від продуктивності, щоб використовувати замість нього "inotify".
"kevent" у FreeBSD за допомогою "libinotify". Це бекенд до "kevent"
все одно.

Користувачі FreeBSD: libinotify на FreeBSD все ще не готовий і
непридатний для clsync для синхронізації великої кількості файлів і каталогів.

Gio
Скористайтеся кнопкою Gio бібліотека

Кросплатформена та перевірена бібліотека, яка підтримує kqueue на FreeBSD
і inotify в Linux. Побачити прищеплювати та kqueue розділи тут для
подробиці

Чи не добре перевірено. Скористайтеся кнопкою з обережно!

kqueue
kqueue(2) [FreeBSD, (Linux через libkqueue)]

*Механізм сповіщення про події ядра BSD (включаючи таймер, сокети,
файли тощо).

Ця підсистема монітора не може визначити подію створення файлу, але вона
може визначити каталог, де щось сталося. Так clsync є мати
щоб повторно сканувати весь каталог щоразу при будь-якій зміні вмісту. Крім того,
kqueue вимагає open() для кожного перегляданого файлу/директора. Але FreeBSD
не дозволяє відкривати() саме символічне посилання (без підпису), і це
дуже інвазивний для open() труб і пристроїв. Так clsync просто не буде
викликати open() для всього, крім звичайних файлів і каталогів.
Отже, clsync не можу визначити, чи щось змінилося
символічне посилання/труба/розетка і так далі. Однак він все ще може визначити, чи це так
буде створено або видалено шляхом перегляду батьківського каталогу і
повторне сканування для кожної відповідної події.

Крім того, цей API вимагає відкриття кожного файлу та каталогу, що відстежується. Так
він може створювати величезну кількість дескрипторів файлів. Будьте в цьому впевнені
файли kern.max досить великий (у FreeBSD).

CPU/HDD дорогий спосіб.

Чи не добре перевірено. Скористайтеся кнопкою з обережно!

Користувачі Linux: черга libk у Linux не працює. хе-хе :)

bsm
bsm(3) [FreeBSD]

API аудиту базового модуля безпеки (BSM).

Насправді це не підсистема монітора FS. Це просто API для
доступ до аудиторської інформації (включно з журналами). clsync можна налаштувати аудит до
переглядати події FS та звітувати про це в журналі. Після того clsync буде просто
розібрати журнал через ревізійна труба(4) [FreeBSD].

Надійний, але хакерський спосіб. Це вимагає глобальної реконфігурації аудиту
це може завадити аналізу аудиту.

Увага! FreeBSD має обмеження для подій у черзі. За замовчуванням FreeBSD
ядро це лише 1024 події. Тож вибирайте один або:
- Виправити ядро, щоб збільшити ліміт.
- Не використовуйте clsync на системах із забагато подій файлів.
- Використання bsm_prefetch режим (але в цьому випадку немає гарантії
так чи інакше).
Дивіться також варіант --exit-on-sync-skip.

Чи не добре перевірено. Скористайтеся кнопкою з обережно! Також файл
/etc/security/audit_control буде перезаписано:
#clsync

dir:/var/audit
прапори: fc,fd,fw,fm,cl
minfree:0
naflags:fc,fd,fw,fm,cl
політика: cnt
розмір файлів: 1 млн
якщо він уже не починається з "#clsync\n" ("\n" - це новий рядок
персонаж).

bsm_prefetch
Такий же як і bsm але всі події BSM будуть попередньо завантажені за допомогою an
додатковий потік для запобігання переповнення черги BSM. Для цього може використовуватися a
багато пам'яті в системах з високою частотою подій FS.

Однак потік може бути недостатньо швидким для вивантаження ядра BSM
черга. Тому він все одно може переповнитися.

Значенням за замовчуванням в Linux є "inotify". Значенням за замовчуванням у FreeBSD є "kqueue".

-л, --етикетка етикетка
Встановлює мітку для цього екземпляра clsync. The етикетка буде передано до обробник синхронізації
кожне виконання.

Значенням за замовчуванням є "nolabel".

-h, --допомога
Виводить список параметрів і виходить з кодом виходу "0".

Не встановлено за замовчуванням.

-V, -- версія
Виводить версію clsync і виходить з кодом виходу "0".

Не встановлено за замовчуванням.

--cgroup-назва-групи cg-назва-групи
Встановити назву групи cgroup [див cgroup_new_cgroup()].

За замовчуванням встановлено значення "clsync/%PID%".

БЕЗПЕКА ВАРІАНТИ


--безпечне розділення
Має на увазі "--splitting=process --check-execvp-arguments --seccomp-filter
--forbid-devices"

-у, --uid UID
Відмовтеся від прав користувача до uid UID з Сетуїд(2)

Якщо є можливості(7) підтримка, тоді значенням за замовчуванням є "ніхто" (або "65534"
якщо «нікого» не знайдено), інакше параметр не встановлено за замовчуванням;

-g, --gid gid
Відмовтеся від групових привілеїв у gid gid з setgid(2)

Якщо є можливості(7), тоді значенням за замовчуванням є "nogroup" (або
«65534», якщо «nogroup» не знайдено), інакше параметр не встановлено за замовчуванням;

--privileged-uid uid обробника синхронізації
Ідентифікатор користувача, який буде використовуватися для привілейованого процесу (див --розщеплення=процес).

Значенням за замовчуванням є "$UID".

--privileged-gid sync-handler-gid
Ідентифікатор групи, який буде використовуватися для привілейованого процесу (див --розщеплення=процес).

Значенням за замовчуванням є "$GID".

--sync-обробник-uid uid обробника синхронізації
Ідентифікатор користувача для використання обробник синхронізації.

Читати --збереження-здатності.

Значення за замовчуванням таке ж, як і для --privileged-uid.

--sync-обробник-gid sync-handler-gid
Ідентифікатор групи для використання обробник синхронізації.

Читати --збереження-здатності.

Значення за замовчуванням таке ж, як і для --privileged-gid.

-C, --збереження-здатності список можливостей
[Linux тільки Вимагається можливості]

Скористайтеся кнопкою капсет(2) і prctl(2) щоб зберегти "CAP_DAC_READ_SEARCH", "CAP_SETUID" або/або
"CAP_SETGID" [див можливості(7)] Можливість Linux для використання процесів футів(3)
прищеплювати(7) і execve(2). Це дозволяє зберегти достатню кількість привілеїв FS для
переглянути дерево файлів і виконати обробник синхронізації з необхідними uid і gid [див
--sync-обробник-uid та --sync-обробник-gid] після скасування привілеїв через Сетуїд(2)
та setgid(2) [див --uid та --gid]

Можливі значення:
CAP_DAC_READ_SEARCH
Щоб обійти перевірки читання FS (для футів та прищеплювати).
CAP_SETUID
Щоб можна було використовувати Сетуїд(2) раніше execve(2) на обробник синхронізації.
CAP_SETGID
Щоб можна було використовувати setgid(2) раніше execve(2) на обробник синхронізації.
CAP_KILL
Щоб мати можливість знищити процеси setuid().

Також підтримуються будь-які комбінації цих значень. Список може бути
представлені як значення, розділені комами, наприклад:
CAP_DAC_READ_SEARCH,CAP_SETUID,CAP_SETGID

Значенням за замовчуванням є "CAP_DAC_READ_SEARCH,CAP_SETUID,CAP_SETGID,CAP_KILL", якщо
clsync бігун має такі привілеї.

--здібності успадкування
[Linux тільки Вимагається можливості]

Встановлює режим успадкування можливостей.

Можливі значення:
дозволений
Успадковує всі дозволені можливості
не торкатися
Не змінюйте спадковий набір можливостей
clsync
Скористайтеся кнопкою clsyncнабір ефективних можливостей
порожній
Скиньте всі можливості

Значенням за замовчуванням є "пусто".

--розщеплення розщеплювального типу
Розділіть процес/потік на привілейований і непривілейований. Це додатковий спосіб
щоб захистити вашу систему від будь-яких помилок clsync під час запуску з можливостями або
привілеї root. Але clsync може використовувати в кілька разів більше ресурсів ЦП. Отже, це а
компроміс між продуктивністю та безпекою.

Ви можете по суті зменшити накладні витрати за допомогою «блокування високого навантаження»
("--enable-highload-locks" файлу "./configure").

Якщо ви використовуєте цю опцію та запускаєте програму обробник синхронізації тоді з користувачем root
настійно рекомендується ввімкнути --check-execvp-аргументи, теж. Інакше на випадок
of clsync помилка безпеки хакер зможе використовувати execvp() з будь-якими аргументами
з правами root.

Можливі значення:
від
Вимкнути цю функцію
нитка
[Linux тільки Вимагається можливості]

Створює окремий потік для привілейованих операцій.

Настійно рекомендується ввімкнути --seccomp-фільтр в цьому випадку. Але
що заборонить -- нарізка ниток.
процес
Більш безпечний і портативний спосіб, але використовує окремий процес і:
- забороняє фанотифікувати (це ще не впроваджено);
- більш складний код (і більша ймовірність помилки).
- повільніше через копіювання даних між приватною та спільною пам'яттю
сторінок.

Рекомендовано

За замовчуванням встановлено значення "вимкнено".

--check-execvp-аргументи
[Вимагає --розщеплення=[потік|процес]]
[Блоки --mode=прямий]

Вмикає повторну перевірку аргументів execvp() у привілейованому процесі (у разі їх
заміна будь-якими аргументами, наданими експлойтом).

Цей параметр не використовує багато ресурсів ЦП, але забороняє змінювати їх під час виконання
аргументи обробника синхронізації і підключити шляхи до файлів.

Цей параметр не можна використовувати разом із --режим=прямий через довільний
кількість аргументів у цьому режимі.

Не встановлено за замовчуванням.

--add-permitted-hook-files [гачок-шлях0, [гачок-шлях1[,...]]]
[Вимагає --check-execvp-аргументи]

Додає шляхи до списку дозволених шляхів перехоплення для обходу --check-execvp-аргументи
чеки. Це може знадобитися, якщо ви збираєтеся змінити хуки під час виконання
--користувацькі сигнали or --розетка.

Не встановлено за замовчуванням.

--seccomp-фільтр
[Linux тільки]

Скористайтеся кнопкою seccomp фільтр, щоб заборонити системні виклики, які не повинні використовуватися clsync.

Заборонити всі системні виклики для непривілейованих процесів/потоків, але
futex inotify_init1 alert stat fstat lstat відкритий запис закрити wait4 unlink
tgkill clock_gettime rt_sigreturn brk mmap munmap wait4 rmdir exit_group
виберіть read rt_sigprocmask rt_sigaction nanosleep

Не встановлено за замовчуванням.

--permit-mprotect
[Вимагає --seccomp-фільтр]

Дозволи mprotect(2) системний виклик.

Цей системний виклик необхідний для pthread_create(3), тому це потрібно для -- нарізка ниток.

Робить --shm-mprotect марним.

Також він дає можливість змінити пам'ять привілейованого потоку з непривілейованого,
тому використання з --splitting=потік з цією опцією теж марно.

За замовчуванням встановлено значення "0", якщо встановлено --splitting. Інакше «1».

--shm-mprotect
[Вимагає --розщеплення=процес]

Заборонити запис або читання в/з спільної пам’яті, коли цього не повинно бути. mprotect(2)
використовується для захисту.

Цей варіант поки марний --permit-mprotect активовано

-- chroot chroot-каталог
clsync chroot()-s [див chroot(2)] до каталогу chroot-каталог перед будь-якою синхронізацією
процесів.

Цей параметр можна використовувати разом із --uid, --gid або / і -- опорний корінь та цінності
міркуваннями безпеки.

Пам'ятайте! Якщо ви десь використовуєте chroot(), то обробник синхронізації буде обмежено
chroot-середовище також. Якщо ви використовуєте rsync, можливо, ви захочете "монтувати --bind"
деякі каталоги до chroot-каталог.

Не встановлено за замовчуванням.

-- опорний корінь опорно-корінь-шлях
[Linux тільки Вимагається --chroot]

Встановлює спосіб використання опорний_корінь(2) системний виклик до chroot-каталог (до umount(2) старий
rootfs).

Можливі значення:
автоматичний
Створює каталог "/dev/shm/clsync-rootfs", скасувати спільний доступ(2)-інг
монтувати простір імен, монтувати(2)-s chroot-каталог до каталогу і
потім опорний_корінь(2)-інг, chroot(2)-ing і umount(2)-інг старих коренів.
Після цього каталог "/dev/shm/clsync-rootfs" не буде видалено clsync
закінчити.
авто-ро
Такий же як і автоматичний але монтує каталог з опцією лише для читання
(MS_RDONLY).
прямий
скасувати спільний доступ(2) - використання простору імен монтування, опорний_корінь(2)-інг, chroot(2)-інг
та umount(2)-інг старих коренів. Необхідно створити каталог "old_root".
in chroot-каталог перед бігом clsync у цьому режимі.
від
Чи не опорний_корінь(2).

Значенням за замовчуванням є "вимкнено". Якщо -- chroot використовується тоді рекомендоване значення
«авто-ро».

-- точки монтування [точка монтування[,точка монтування[,точка монтування]]]
[Linux тільки]

Відключіть (з MNT_DETACH) все, крім перерахованих точок монтування.

Передбачається використовувати з міркувань безпеки як альтернативу -- опорний корінь варіант.

Не встановлено за замовчуванням.

--detach-мережа режим від’єднання мережі
[Linux тільки]

Видаляє мережу в clsync екземпляр

Можливі значення:
скрізь
Видаляє мережу для всіх процесів.
непривілейовані
Видаляє мережу з непривілейованого процесу, якщо є можливість
--розщеплення процесу увімкнено, інакше нічого не робить.
від
Нічого не роби.

Значенням за замовчуванням є «непривілейований».

--detach-ipc
[Linux тільки]

Створіть власний простір імен IPC.

Встановлено за замовчуванням.

--від'єднати-різне
[Linux тільки]

скасувати спільний доступ(2) на все, що не перераховано вище.

Не встановлено за замовчуванням.

-- заборонити пристрої
[Linux тільки]

Заборонити будь-який доступ до всіх пристроїв, крім перерахованих:
доступ для читання:
/dev/console
/ dev / нуль
/dev/urrandom
/ dev / випадково
доступ на запис до:
/dev/console
/ dev / null

Не встановлено за замовчуванням.

ДІЯЛЬНОСТІ


Рекомендації щодо підвищення ефективності:
- Вимкніть розділення потоків/процесів.
- Не використовуйте правила clsync (використовуйте правила на стороні обробника синхронізації) та/та використовуйте опцію
"--full-initialsync"
- Використовуйте опцію "-B0".
- Використовуйте опцію "--cancel-syscalls=mon_stat".
- Використовуйте опцію "-p safe" або "-p full".
- Вимкніть налагодження за допомогою "-d0" або краще взагалі вимкнути підтримку налагодження
Параметр "./configure" "--enable-debug=no"
- Не використовуйте параметр "--exclude-mount-points"
- Вільна пам'ять для кешу диска

Ви не повинні виконувати всі ці рекомендації з зав’язаними очима. Ви повинні використовувати лише ті ідеї, які
усуває проблеми з продуктивністю у вашому конкретному випадку використання. І тільки якщо це необхідно.

SYNC ПЕРЕКЛАДЧИК РЕЖИМИ


clsync виконує обробник синхронізації який повинен піклуватися про фактичний процес синхронізації.
Тому clsync це лише зручний спосіб запустити сценарій синхронізації.

clsync може працювати обробник синхронізації сімома способами. Який спосіб буде використаний, залежить від зазначеного
режим (див --режим)

аргументи обробника синхронізації використовуються тільки в режимах:
простий
прямий
оболонка
rsyncdirect
rsyncshell

If аргументи обробника синхронізації не встановлені, то використовується налаштування за замовчуванням (див. нижче).

випадок простий
Виконується для кожного синхронізованого файлу/директора:
обробник синхронізації аргументи обробника синхронізації

дефолт аргументи обробника синхронізації є:
синхронізувати %мітка% %ПОДІЯ-МАСКА% %ВКЛЮЧИТИ-СПИСОК%

В цьому випадку, обробник синхронізації передбачається нерекурсивно синхронізувати файл або каталог за
шлях %ВКЛЮЧИТИ-СПИСОК%. З %ПОДІЯ-МАСКА% передається бітова маска подій з файлом
або каталог (див. «/usr/include/linux/inotify.h»).

Додаткові заміни:
%ПОДІЯ-МАСКА%
Замінюється цілим числом ідентифікаторів подій.
%ВКЛЮЧИТИ-СПИСОК%
Замінюється абсолютним шляхом до файлу/каталогу, який потрібно синхронізувати.

випадок прямий
Виконується для кожної синхронізації:
обробник синхронізації аргументи обробника синхронізації

дефолт аргументи обробника синхронізації є:
%INCLUDE-LIST% %destination-dir%/

Додаткові заміни:
%ВКЛЮЧИТИ-СПИСОК%
Замінюється списком відносних шляхів до файлів/каталогів, які потрібно синхронізувати.

випадок оболонка
Виконується для кожної синхронізації (якщо рекурсивна синхронізація замість цього не використовується):
обробник синхронізації аргументи обробника синхронізації

дефолт аргументи обробника синхронізації є:
синхронізація %label% %INCLUDE-LIST-PATH%

дефолт аргументи обробника синхронізації для початкової синхронізації якщо --have-recursive-sync встановлений
є:
initialsync %label% %INCLUDE-LIST%

В цьому випадку, обробник синхронізації передбачається нерекурсивно синхронізувати файли та
каталоги зі списку у файлі за шляхом %INCLUDE-LIST-PATH% на "synclist".

Також обробник синхронізації передбачається рекурсивно синхронізувати дані з каталогу за шляхом
%INCLUDE-LIST-PATH% з ручним виключенням додаткових файлів на "initialsync".

Додаткові заміни:
%TYPE%
Замінюється на "sync"/"initialsync".
%INCLUDE-LIST-PATH%
Замінюється шляхом до файлу списку включення.
%ВКЛЮЧИТИ-СПИСОК%
Замінюється списком відносних шляхів до файлів/каталогів, які потрібно синхронізувати.

Не рекомендовано. Не добре перевірено.

випадок rsyncdirect
Виконується для кожної синхронізації:
обробник синхронізації аргументи обробника синхронізації

обробник синхронізації має бути шляхом до rsync двійкові.

дефолт аргументи обробника синхронізації є:
-aH --delete --exclude-from %EXCLUDE-LIST-PATH% --include-from
%INCLUDE-LIST-PATH% --exclude='*' %watch-dir%/ %destination-dir%/
якщо варіант --rsync--prefer-include не встановлено і
-aH --delete --include-from %INCLUDE-LIST-PATH% --exclude='*' %watch-dir%/
%destination-dir%/
якщо цей параметр встановлений

Код помилки «24» від обробник синхронізації буде проігноровано в цьому випадку. Ми також рекомендуємо
ігнорувати код виходу "23".

Додаткові заміни:
%INCLUDE-LIST-PATH%
Замінюється шляхом до файлу списку включення
%EXCLUDE-LIST-PATH%
Замінюється шляхом до файлу списку виключень
%RSYNC-ARGS%
Замінюється за замовчуванням аргументи обробника синхронізації, Але без
"%watch-dir%/ %destination-dir%/"

Рекомендований випадок.

випадок rsyncshell
Виконується для кожної синхронізації:
обробник синхронізації аргументи обробника синхронізації

дефолт аргументи обробника синхронізації є:
rsynclist %label% %INCLUDE-LIST-PATH% [%EXCLUDE-LIST-PATH%]

В цьому випадку, обробник синхронізації має запускати програму "rsync" з параметрами:

-aH --delete-before --include-from %INCLUDE-LIST-PATH% --exclude '*'

якщо варіант --rsync-prefer-include активовано

І з параметрами:

-aH --delete-before --exclude-from %EXCLUDE-LIST-PATH% --include-from
%INCLUDE-LIST-PATH% --exclude '*'

якщо варіант --rsync-prefer-include вимкнено

Додаткові заміни:
%INCLUDE-LIST-PATH%
Замінюється шляхом до файлу списку включення rsync
%EXCLUDE-LIST-PATH%
Замінюється шляхом до файлу списку виключень rsync

Рекомендований випадок.

випадок rsyncso
У цьому випадку немає прямого виклику exec*(). В цьому випадку clsync вантажі синхронізація
обробник як спільна бібліотека з dlopen(3) і викликає функцію "int
clsyncapi_rsync(const char *inclist, const char *exclist)" з нього для кожної синхронізації.
включати це шлях до файлу з правилами для параметра «--include-from» rsync. Це
аргумент завжди не має значення NULL.
виключити це шлях до файлу з правилами для параметра «--exclude-from» для rsync. Це
аргумент NULL якщо --rsync-prefer-include встановлено.
Виключає приймає пріоритет над включає.

Також можуть бути визначені функції "int clsyncapi_init(ctx_t *, indexes_t *)" і "int
clsyncapi_deinit()" для ініціалізації та деініціалізації процесу синхронізації
спільний об'єкт.

Для форк процесу слід використовувати функцію "pid_t clsyncapi_fork(ctx_t *)" замість цього
"pid_t fork()", щоб clsync міг убити дитину.

Дивіться приклад файлу "clsync-synchandler-rsyncso.c".

Рекомендований випадок.

випадок so
У цьому випадку немає прямого виклику exec*(). В цьому випадку clsync вантажі синхронізація
обробник як спільна бібліотека з dlopen(3) і викликає функцію "int
clsyncapi_sync(int n, api_eventinfo_t *ei)" з нього для кожної синхронізації. n є числом
елементів ei. ei являє собою масив структур з інформацією про те, що і як
для синхронізації (див. нижче).

api_eventinfo_t - це структура:
struct api_eventinfo {
uint32_t evmask; // бітова маска події для файлу/директора за
шлях шлях.
прапори uint32_t; // прапорці "як синхронізувати" файл
файл/реж
size_t path_len; // strlen (шлях)
const char *шлях; // the шлях to file/dir потрібно
синхронізовано
eventobjtype_t objtype_old; // тип об'єкта за шляхом шлях
перед подією.
eventobjtype_t objtype_new; // тип об'єкта за шляхом шлях після
подія.
};
typedef struct api_eventinfo api_eventinfo_t;

Значення бітової маски події (evmask) можна дізнатися з
"/usr/include/linux/inotify.h".

Можуть бути наступні значення прапорів (прапорів):
enum eventinfo_flags {
EVIF_NONE = 0x00000000, // Без модифікатора
EVIF_RECURSIVELY = 0x00000001 // синхронізувати файл/каталог рекурсивно
};
Прапор "EVIF_RECURSIVELY" може використовуватися, якщо параметр --have-recursive-sync встановлено.

Це файл або каталог за шляхом шлях можна визначити з objtype_old та
objtype_new.
objtype_old повідомляє про те, який тип був об’єктом на шляху до події.
objtype_new повідомляє про те, який тип став об’єктом за шляхом після події.

objtype_old та objtype_new мати тип eventobjtype_t.

enum eventobjtype {
EOT_UNKNOWN = 0, // Невідомо
EOT_DOESNTEXIST = 1, // Не існує (ще не створено або вже
видалено)
EOT_FILE = 2, // Файл
EOT_DIR = 3, // Каталог
} typedef enum eventobjtype eventobjtype_t;

Також можуть бути визначені функції "int clsyncapi_init(options_t *, indexes_t *)" і
"int clsyncapi_deinit()" для ініціалізації та деініціалізації процесу синхронізації за допомогою цього
спільний об'єкт.

Для форка процесу слід використовувати функцію "pid_t clsyncapi_fork(options_t *)"
замість "pid_t fork()", щоб clsync міг убити дитину.

Дивіться приклад файлу "clsync-synchandler-so.c".

Рекомендований випадок.

НАВКОЛИШНЄ СЕРЕДОВИЩЕ ЗМІННІ


Вихідні змінні - змінні, які встановлюються clsync перед викликом обробник синхронізації.

Вихід змінні
CLSYNC_STATUS - clsyncстатус користувача (див. можливі статуси в описі
--файл статусу)

CLSYNC_ITERATION - кількість виконаних ітерацій синхронізації після початкової синхронізації див
--опція max-iterations

ПРАВИЛА


Правила фільтрування можна використовувати, щоб встановити, які події clsync має відстежувати, а які події
слід ігнорувати.

Увага! Ці правила не гарантують, що відфільтрований файл/каталог не буде синхронізовано. Це може
відбувається тому, що файл або каталог можуть з’явитися в момент обробник синхронізації бігу (або після
це, але перед тим обробник синхронізації досягне каталогу), тому буде надто пізно додавати файл
виключення. Якщо вам потрібна гарантія запобігання синхронізації файлів, ви можете використовувати внутрішній фільтр
правила обробник синхронізації програма (наприклад, rsync має параметри "--exclude",
"--exclude-from" і "--filter") або вимкнути будь-яку "рекурсивну" синхронізацію в clsync
видалити параметр "-av" rsync, якщо він використовується). Щоб вимкнути рекурсивну синхронізацію, ви можете використовувати:
простий
Вже нерекурсивний
прямий
Вже нерекурсивний
оболонка
Не вмикайте параметр --have-recursive-sync.
rsyncdirect
Використовуйте параметр --rsync-prefer-include та встановіть аргументи обробника синхронізації до -lptgoD
--delete --include-from %INCLUDE-LIST-PATH% --exclude='*' %watch-dir%/
%destination-dir%/
rsyncshell
Використовуйте параметр --rsync-prefer-include.
rsyncso
Використовуйте параметр --rsync-prefer-include.
so
Не вмикайте параметр --have-recursive-sync.

Правила фільтра можна помістити в файл правил з одним правилом на рядок.

Формат правила: [+-][fdw*]регулярний вираз

+ - засоби включають; - - означає виключити; f - означає файл; d - означає довідник; w - засоби
перехід до каталогу; * - означає все.

Наприклад: -*^/[Tt]est

Не рекомендується використовувати w правила в режимах "rsyncdirect", "rsyncshell" і "rsyncso".
rsync(1) дозволяє налаштувати синхронізацію та хід лише разом у правилах "--include".
("--files-from" не підходить через проблему з синхронізацією видалення файлів). Так там
можуть бути проблеми з clsync w правила в цих випадках.

Інші приклади:

Синхронізація файлів pwdb і sshd_config (випадок без rsync):
+f^/passwd$
+f^/група$
+f^/тінь$
+f^/ssh/sshd_config$
+w^$
+w^/ssh$
-*

Синхронізація файлів pwdb і sshd_config (випадок rsync):
+f^/passwd$
+f^/група$
+f^/тінь$
+f^/ssh/sshd_config$
+d^$
+d^/ssh$
-*

Синхронізація дерева /srv/lxc (випадок rsync):
-d/sess(ion)?s?$
-f/tmp/
+*

СИГНАЛИ


1 - (HUP) перечитує правила фільтрації

2 - (INT) виходить без очікування процесів синхронізації ("жорстке вбивство", вбиває дітей)

3 - (QUIT) чекає поточних процесів синхронізації та виходу ("м'яке вбивство", чекає дітей)

10 - запускає функцію GC потоків

12 - виконує повну повторну синхронізацію

15 - (TERM) виходить без очікування процесів синхронізації ("hard kill", вбиває дітей)

16 - перериває sleep()/select() і wait() [для налагодження та внутрішнього використання]

29 - скинути інформацію до дамп-реж [для налагодження]

Якщо вам потрібно вбити clsync, але залишити дітей, ви можете використовувати 9-й сигнал (KILL).

ДІАГНОСТИКА


Початковий процес rsync працює дуже повільно під час запуску clsync
Ймовірно, у rsync передається занадто великий список виключень. Це може статися, якщо
ви виключаєте за допомогою регулярного виразу в правилах clsync багато тисяч файлів. Вони будуть
передаватися до списку виключень rsync по черзі.

Щоб діагностувати його, ви можете використовувати опцію "-U" і ​​розглянути rsync-exclude-listpath файл
(Див. SYNC ПЕРЕКЛАДЧИК випадок d)

Щоб запобігти цьому, рекомендується писати такі правила для rsync безпосередньо (не через
clsync).

Наприклад, часто проблема виникає з файлами сесії PHP. Ви не повинні їх виключати
у правилах clsync з "-f/sess_.*", але ви повинні виключити його безпосередньо в rsync
(наприклад, з «--exclude "sess_*"»).

На stderr може бути видана така діагностика:

Помилка: не вдається inotify_add_watch() на [...]: на пристрої не залишилося місця (помилка: 28)
Дозволено недостатньо дескрипторів перегляду inotify. Це можна виправити шляхом збільшення
значення "sysctl fs.inotify.max_user_watches"

Помилка: отримано ненульовий код виходу код виходу [...]
обробник синхронізації повернуто ненульовий код виходу. Можливо, вам слід обробити коди виходу
це або ваш процес синхронізації не працював належним чином. Ви можете знайти випадок використання rsync
значення кодів виходу в людина 1 rsync.

If код виходу дорівнює 23, і ви використовуєте clsync в поєднанні з rsync, Це
може статися, наприклад, у наступних випадках:

- Недостатньо місця на місці призначення.

- Ви використовуєте clsync з --threading=повний і rsync з --резервне копіювання, Побачити
звіт про помилки ⟨https://bugzilla.samba.org/show_bug.cgi?id=10081⟩.

Щоб підтвердити проблему, ви можете спробувати додати "return 0" або "exit 0" у ваш
обробник синхронізації.

Басейн система call
Якщо параметр --use-seccomp увімкнено, то, ймовірно, помилка спричинена використанням of
заборонений системний виклик. Це є clsync помилка або спроба хакерської атаки.

Щоб отримати підтримку див ПІДТРИМКА.

КОНФІГУРАЦІЯ Фото


clsync підтримує файл конфігурації.

За замовчуванням clsync намагається прочитати наступні файли (у зазначеному порядку):
~/.clsync.conf
/etc/clsync/clsync.conf

Це можна замінити опцією --файл конфігурації.

clsync читає лише один конфігураційний файл. Іншими словами, якщо варіант --файл конфігурації НЕ
встановити і файл ~/.clsync.conf доступний і розбірливий, clsync не намагатиметься відкрити
/etc/clsync/clsync.conf. Параметри командного рядка мають пріоритет над параметрами файлу конфігурації.

Файл конфігурації аналізується за допомогою API g_key_file_* glib. Це означає, що конфігурація повинна
складається з груп (блоків) рядків ключ-значення, як у прикладі:
[за замовчуванням]
фон = 1
режим = rsyncshell
налагодження = 0
вихід = системний журнал
етикетка = за замовчуванням
pid-файл = /var/run/clsync-%label%.pid

[Debug]
config-block-inherits = за замовчуванням
налагодження = 5
фон = 0
вихід = stderr

[тест]
режим=rsyncdirect
debug=3

Також гліб gkf API не підтримує кілька призначень. Якщо вам потрібно перерахувати деякі значення
(наприклад, коди виходу) просто перерахуйте їх з комами в одному присвоєнні (наприклад
"ignore-exitcode=23,24").

У цьому прикладі встановлено 3 блоки - "за замовчуванням", "налагодження" і "тест". І блокувати
"debug" успадковане налаштування блоку "за замовчуванням", крім параметрів "debug", "background" і
«вихід».

За замовчуванням clsync використовує блок з назвою "за замовчуванням". Ім'я блоку можна встановити опцією
--config-блок.

КЛАСТЕРІЗАЦІЯ


Ще не реалізовано. Чи не намагатися до використання кластер функціональність.

Ще не описано.

ПРИКЛАДИ


Дзеркальне відображення a каталог:
clsync -Mrsyncdirect -W/шлях/до/каталог_джерела -D/шлях/до/директорі призначення

Синхронізація 'autorized_keys' файли:
mkdir -p /etc/clsync/rules
printf "+w^$0^[^/]+$0^[^/]+/.ssh$0^[^/]+/.ssh/authorized_keys$0" >
/etc/clsync/rules/authorized_files_only
clsync -Mdirect -Scp -W/mnt/master/home/ -D/home
-R/etc/clsync/rules/authorized_files_only -- -Pfp --батьки %INCLUDE-LIST%
%destination-dir%

Дзеркальне відображення a каталог, але швидше:
clsync -w5 -t5 -T5 -Mrsyncdirect -W/шлях/до/каталог_виходу -D/шлях/до/каталог_призначення

Instant відображає of a каталог:
clsync -w0 -t0 -T0 -Mrsyncdirect -W/шлях/до/каталог_виходу -D/шлях/до/каталог_призначення

Робить два каталоги синхронний:
clsync -Mrsyncdirect --background -z /var/run/clsync0.pid -- вихідний системний журнал
-Mrsyncdirect -W/path/to/dir1 -D/path/to/dir2 --modification-signature '*'
clsync -Mrsyncdirect --background -z /var/run/clsync1.pid -- вихідний системний журнал
-Mrsyncdirect -W/path/to/dir2 -D/path/to/dir1 --modification-signature '*'

Фіксація привілеї of a веб-сайт:
clsync -w3 -t3 -T3 -x1 -W/var/www/site.example.org/root -Mdirect -Schown --uid 0
--gid 0 -Ysyslog -b1 --modification-signature uid,gid -- --from=root
www-дані:www-дані %INCLUDE-LIST%

"атомний" синхронізація:
clsync --exit-on-no-events --max-iterations=20 --mode=rsyncdirect -W/var/www_new
-Srsync -- %RSYNC-ARGS% /var/www_new/ / var / www /

Moving a веб-сервер:
clsync --exit-on-no-events --max-iterations=20 --pre-exit-hook=/root/stop-here.sh
--exit-hook=/root/start-there.sh --mode=rsyncdirect --ignore-exitcode=23,24
--повторів=3 -W / Вар / WWW -S rsync -- %RSYNC-ARGS% / var / www / rsync://clsync@інший-
host/var/www/

Копіювання файли до підпорядковані вузли використання pdcp(1):
clsync -Msimple -S pdcp -W /opt/global -b -Y системний журнал -- -a %INCLUDE-LIST%
%ВКЛЮЧИТИ-СПИСОК%

Копіювання файли до підпорядковані вузли використання uftp(1):
clsync -Mdirect -S uftp -W/opt/global --background=1 --output=syslog -- -M
248.225.233.1 % ВКЛЮЧИТЬ-СПИСОК%

A висушити біг до побачити rsync(1) аргументація Що clsync волі використання:
clsync -Mrsyncdirect -S echo -W/шлях/до/каталог_джерела -D/шлях/до/каталог_призначення

An інший висушити біг до дивитися як clsync волі call pdcp(1):
clsync -Msimple -S echo -W /opt/global -b0 -- pdcp -a %INCLUDE-LIST% %INCLUDE-LIST%

Більше робочих прикладів ви можете спробувати в каталозі "/usr/share/doc/clsync/examples/". Копія
цей каталог десь (наприклад, у "/ Tmp"). І спробуйте запустити "clsync-start-rsync.sh".
там. Будь-які зміни файлів/каталогів у "testdir/from" будуть синхронізовані з
"testdir/to" за кілька секунд.

Використовуйте clsync онлайн за допомогою служб onworks.net


Безкоштовні сервери та робочі станції

Завантажте програми для Windows і Linux

Команди Linux

Ad




×
реклама
❤️Робіть покупки, бронюйте або купуйте тут — безкоштовно, це допомагає зберегти послуги безкоштовними.