Це команда rdup, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS.
ПРОГРАМА:
ІМ'Я
rdup - створити список файлів, придатних для створення резервних копій
СИНТАКСИС
rdup [-N відмітка часу] -[-Pcmd, opt1,..., opt7]... [ВАРІАНТ]... СПИСОК ФАЙЛОВ [DIR/FILE]...
ОПИС
rdup це утиліта, натхненна rsync та способом створення резервних копій Plan9. rdup сама робить
нічого не створювати. Він друкує лише список файлів, які були змінені, або всі файли у випадку
нульового дампу. Він також обробляє файли, які видаляються, що дозволяє правильно інкрементувати
резервні копії. Усі надруковані шляхи є абсолютними. rdup використовує час зміни (ctime) для прийняття рішення
чи змінено файл.
Це працює наступним чином, для повного дампу
1. Сканувати всі каталоги та вивести всі знайдені імена у стандартний вихід.
2. Напишіть список файлів з усіма іменами, знайденими під час сканування. Використовуйте цей список, щоб
розрахувати правильний інкрементний дамп.
І для додаткових дампів
1. Прочитайте список файлів, який був записаний під час виконання повного дампу.
2. Торкніться файлу позначки часу.
3. Знову сканувати всі каталоги.
4. Різниця 1. і 2. для отримання двох списків; один із видалених елементів і один із доданих/змінених
предметів.
5. Запишіть вилучені елементи до стандартного виведення
6. Запишіть змінені/нові елементи до стандартного виводу.
7. Напишіть новий список файлів.
Команда СПИСОК ФАЙЛОВ є внутрішнім списком rdup записує, щоб відстежувати, які файли знаходяться в a
резервне копіювання. Якщо ви не хочете цього (тобто зробити повну резервну копію), використовуйте / dev / null тут. Файл
/ dev / null обробляється спеціально rdup: якщо виявлено, новий список файлів не записується.
Команда DIRS/ФАЙЛИ можна вказати кілька разів. Це каталоги та файли, які ви
хочу зробити резервну копію. Якщо пропущено, за замовчуванням буде використовуватися поточний каталог "." .
Якщо -N відмітка часу опція не вказана, усі знайдені шляхи друкуються. Тільки коли а -N
відмітка часу файл дається, можна порівняти час і згенерувати інкрементний вихід.
rdup друкує список файлів на стандартний вихід. Можна використовувати наступні програми в конвеєрі
фактично реалізувати схему резервного копіювання. Після запуску записується новий СПИСОК ФАЙЛОВ. Без попередження
надається, коли FILELIST є існуючим файлом, він просто перезаписується rdup. Нові пробіги
роздрукує лише ті файли, які фактично змінилися або були видалені після останнього
запускати, що робить можливим додаткове резервне копіювання.
Файли перевіряються на наявність змін, порівнюючи c-time (час зміни), якщо цей час НОВІЙ
ніж час c файлу позначки часу, ім'я шляху друкується у стандартному виводі. Коли файли
видаляються, вони також друкуються на стандартному виводі, але до них ставиться префікс «-».
Читати ФОРМАТ нижче. Формат за замовчуванням rdup використовує таке: "%p%T %b %t %u %U %g %G %l %s\n%n%C"
Зауважте, що rdup також підтримує хешування файлів, це дає можливість перевірити локальне
хеш із хешем файлу резервної копії.
Усі помилки записуються до стандартної помилки. Якщо каталог або файл не існує, вони
пропускаються і видається попередження.
Загальна ідея полягає в тому, щоб бути дуже схожим на UNIX і створити купу простих програм, кожна з яких
робити свою конкретну справу дуже добре. З rdup і невеликий сценарій оболонки (50 рядків) можна
реалізувати зашифровані та стиснуті резервні копії.
As rdup нічого не створює резервної копії, політика резервного копіювання; що ви створюєте резервні копії, як ви створюєте резервні копії, як
часто і як ви відновлюєте; все залежить від сценаріїв і вашої уяви. Щоб розпочати
ваша уява див rdup-tr(1), rdup-up(1) і, можливо, rdup-резервні копії.
ВАРІАНТИ
-Pкоманда,варіант 0, ...,варіант 6
Відфільтруйте весь вихід команда. варіант 0 через варіант 6 надаються як варіанти
команда. Можна використовувати кілька -P, однак існує максимум сім варіантів
кожну команду. Варіанти відокремлюються комами, вони повинні бути немає простір в
між.
Через природу каналів у Unix цей конвеєр відтворюється для кожного файлу
оброблено. Також див. «Дочірні процеси» нижче.
-F формат
Вкажіть формат у стилі printf для використання. Побачити ФОРМАТ нижче.
-N відмітка часу
використовувати c_time файлу відмітка часу як позначку часу, щоб вирішити, що включити в
інкрементний резервний список. Якщо відмітка часу не існує, виконується повний дамп.
-M відмітка часу
Як -N, але подивіться на m_time позначки часу.
-R Зворотний вихід rdup. Інструменти, які приймають цей вихід, повинні створювати провідні
каталог, як вони їх бачать. Ця опція дозволяє сценарій працювати як звичайний користувач
-- для розміщення файлів у каталозі, який може мати 0600 як дозвіл.
-E файл
Файл під назвою 'file' містить список регулярних виразів, сумісних з Perl
(PCRE), по одному на рядок rdup використовуватиму виключати імена. "#" на початку
рядок можна використовувати для сигналу про коментар. Порожні рядки ігноруються.
Якщо каталог виключено, rdup не буде опускатися в цей каталог, тому всі файли в
цей каталог також виключено.
Не можна виключити каталоги, що ведуть до каталогу, для якого потрібно створити резервну копію. Якщо
ви використовуєте командний рядок, наприклад:
rdup /dev/null /home/miekg/bin
каталоги '/ Головна', '/home/miekg', '/home/miekg/bin' завжди друкуються.
Якщо ви хочете виключити файл '/home/miekg/blaat', вам потрібно додати наступне
регулярний вираз: '/home/miekg/blaat'.
Якщо ви хочете виключити всі каталоги .mozilla/cache усіх користувачів, які ви можете використовувати
'/додому/.*/.mozilla/cache/.*'. Це не виключає сам каталог і я
припускаючи, що домашні каталоги користувачів знаходяться під '/ Головна'.
Також зауважте, що rdup не друкує каталоги з косою рискою в кінці.
-a Відновити початковий час доступу до файлів і каталогів.
-n Не шануйте .nobackup файли. Зазвичай якщо такий файл знайдено, то каталог і все
файли, що містять його, не друкуються на стандартному виводі. Тепер вони є.
-r Друкувати лише видалені файли; записи, які починаються з «-». Цей параметр скасовує -m.
-m Друкувати лише змінені/нові файли; записи, які починаються з "+". Цей параметр скасовується
-р.
-v Будьте більш багатослівними. При використанні кожен шлях також буде надруковано зі стандартною помилкою.
-s розмір
Не виводьте файли розміром більше ніж розмір байтів. Це можна використовувати для обмеження кількості
дані, які будуть передані під час віддаленого резервного копіювання. Цей варіант тільки стосується
файли.
-x Залишайтеся на локальній файловій системі.
-V Роздрукувати версію rdup.
-h Дайте огляд варіантів.
Дитина процеси (-П прапор)
Створюючи вихідні дані, ви також можете захотіти передати вміст кожен файл через
кількість команд, скажімо, утиліта стиснення та шифрування. Зауважте, що це інше
ніж стиснення весь архівуйте, як дозволяє GNU tar, використовуючи параметр -z. Так це
де rdup Дозволяє створити звичайний архів, у якому кожен файл є
зашифрований (або стиснутий. зворотний чи що завгодно). rdup робить це шляхом роздвоєння дитини
процеси, які трансформують зміст.
Якщо один із дочірніх розгалужень повертає код виходу, відмінний від нуля (0), вважається, що
невдало весь процес перетворення. В такому разі rdup припиняється.
Як сказано rdup працює, відокремлюючи ряд дочірніх процесів (команди, названі with
параметр(и) -P), з'єднуючи їх за допомогою труб. Поточний файл підключено до
перша дитина. Вихід, створений цими дочірніми процесами, фіксується батьківським
(rdup). Потім вміст записується на стандартний вихід у форматі архіву. Як
зображення говорить більше тисячі слів, ось зображення процесу в форматі ASCII:
+--- ... (стандартний вихід) ... ----> архів
/
rdup <--- ... ... <----+
|
цикл #файли |
|
файл ---> cmd1 | cmd2 | ...| cmdN
РЕЗЕРВНІ КАПІЇ
З:
rm -f мітка часу && rdup -N мітка часу СПИСОК DIR
Список файлів з повним дампом друкується на стандартному виводі. І з:
rdup -N позначка часу LIST DIR
Надруковано список файлів інкрементного дампу. Файл відмітка часу використовується для збереження точного часу
запуску rdup. Файл СПИСОК використовується для обчислення правильного списку інкрементного дампу, це
необхідний для файлів, які видаляються або мають інший тип.
ФОРМАТ
Формат за замовчуванням rdup використовує таке: "%p%T %b %t %u %U %g %G %l %s\n%n%C"
Наступні escape-послідовності розуміють rdup:
«p»: «+», якщо файл новий/змінений, «-», якщо видалено
'b': біти дозволу від lstat(2), вісімкове число з чотирьох цифр
'm': біти режиму файлу, st_mode від lstat(2), десяткові цифри
'u': uid
"U": ім'я користувача
'g': gid
'G': назва групи
'l': довжина імені шляху
's': розмір файлу, але див ПЕРЕКЛАДИ
'n': ім'я шляху
'N': ім'я шляху, але у випадку м'якого або жорсткого посилання тільки назву посилання.
't': час модифікації (секунди від епохи)
«H»: хеш SHA1 звичайного файлу, усі нулі («0») для всіх інших типів
'T': тип файлу
- звичайний файл, l символічне посилання, h жорстке посилання, d каталог,
c символьний пристрій, b блокувальний пристрій, p названа труба
та s розетка.
"C": вміст файлу (не для всіх інших типів)
Щоб розмежувати вихід rdup з NULL ви можете використовувати '\0' у рядку форматування.
Будь-який вміст файлу записується на основі блоків/частків. Останній блок сигналізується за допомогою
нульовий блок. Початковий запис блоку має формат ASCII і має такий формат: VVBLOCKBBBBB\n .
Де 'VV' - це версія, яка зараз має значення '01', потім рядок літералу 'BLOCK', а потім
кількість байтів (BBBBB), типовий '08192'. А потім новий рядок. Це виглядає так:
01БЛОК08192
8192BLOCK01
15BLOCK01
Нульовий байт сигналізує про блок зупинки.
СПИСОК ФАЙЛОВ
rdup записує (внутрішній) FILELIST у такому форматі:
MODE DEV INODE LINK UID GID PATH_SIZE FILE_SIZE PATH
Звідки MODE є st_mode stat(2), DEV – це ідентифікатор розробника, який повертається викликом stat і
INODE - це номер inode - rdup потрібна ця інформація, щоб вирішити, чи перейменувати каталог. ПОСИЛАННЯ
дорівнює «h» для жорстких посилань, «l» для символічних посилань, а в іншому випадку — «*». UID і GID є
числовий ідентифікатор користувача та групи файлу. PATH_SIZE – довжина PATH. FILE_SIZE
розмір файлу. І, нарешті, PATH – це шлях до файлу.
Типовий приклад:
16893 2050 32085 * 1000 1000 30 4096 /home/miekg/git/rdup/.git/logs
ВИХІД ФОРМАТ
Вихід, згенерований за допомогою rdup форматується так:
+|-TYPE BITS MTIME UID USER GID GROUP PATH_SIZE FILE_SIZE\n
ШЛЯХ FILE_CONTENTS
Це дає можливість сценарію віддаленої оболонки отримати фактичний файл
вміст і зробіть резервну копію.
Для каталогів: FILE_SIZE дорівнює нулю, і вміст не друкується. Таким чином:
+d 0755 1260243445 1000 микг 1000 микг 11 0\n
/home/miekg
Для звичайних файлів наведено зразок виводу:
+- 0644 1260243445 1000 мікг 1000 мікг 32 6\n
/home/miekg/svn/rdup/trunk/aaa/a01BLOCK00006\n
привіт\n
01BLOCK00000\n
де ааа/а це звичайний файл, що містить слово 'hello\n'
ПЕРЕКЛАДИ
Програмні та жорсткі посилання обробляються по-різному під час використання %n, якщо вам не подобається така поведінка
використовувати %N. Ім’я PATH генерується з назви посилання та його цілі. Подібне символічне посилання
/home/bin/blaat -> /home/bin/bliep
друкується як '/home/bin/blaat -> /home/bin/bliep'. PATH_SIZE відповідно змінено,
де ' -> ' (4 символи) також враховується. FILE_SIZE не потрібен для програмного або
жорстких посилань, тому встановлюється довжина назви посилання -- частини зліва від ' ->', у
у цьому випадку довжина '/home/bin/blaat'.
Якщо rdup зустрічає жорстке посилання, воно обробляється таким же чином, але для типу виводу встановлено значення
"h" замість "l". Жорстке посилання виявляється лише в тому випадку, якщо rdup знаходить файл з тим самим inode
і номер пристрою як попередній, тобто такі жорсткі посилання повинні міститися у вашій резервній копії.
Знову зауважте: із '%N' друкується лише назва посилання. FILE_SIZE – це як і раніше встановити на
довжина назви посилання.
Пристрій Файли
Для пристроїв поле розміру (%s) змінюється, щоб містити основний, менший номер пристрою.
Отже, якщо основне число дорівнює 8, а другорядне — 0 (у Linux це /dev/sda), його
розмір буде 8,0. Цифри відокремлюються лише комою `,'.
Symlinks
Ви, мабуть, подумаєте rdup спуститься до каталогу, на який вказує символічне посилання.
Це не те, що відбувається насправді, rdup надрукує будь-які каталоги, що ведуть до
символьне посилання і буде НЕ опуститися в каталог. GNU tar працює так само.
EXIT КОД
rdup повертати нульовий код виходу в разі успіху, інакше повертається 1. rdup перерве, якщо a
файл не може бути об’єднаний, якщо регулярний вираз не може бути скомпільований або якщо сигнал
отримано.
ПРИКЛАДИ
Наступний набір прикладів створить повний дамп - через використання /dev/null. Побачити
rdup-tr(1) для більш розширених прикладів.
rdup (дзеркальне відображення)
Резервне копіювання:
rdup /dev/null ~/bin | rdup-up -t /shared/backup
Відновлення:
rdup /dev/null /shared/backup | rdup-up -t /tmp/restore
or
cp -rap /shared/backup /tmp/restore
rdup (архівування)
Резервне копіювання:
rdup /dev/null ~/bin > my-archive.rdup
Відновлення:
rdup-up -t /tmp/restore < my-archive.rdup
cpio
Резервне копіювання:
rdup -R -F '%N\n' /dev/null ~/bin | cpio -o -Hcrc > my-archive.cpio
Відновлення:
cpio -i -d -Hcrc < my-archive.cpio
дьоготь
Резервне копіювання:
rdup -F '%N\n' /dev/null ~/bin | tar c -f мій-архів.tar -T - --без рекурсії
Відновлення:
tar x -f мій-архів.tar
Використовуйте rdup онлайн за допомогою служб onworks.net