Архивиране с rdiff-backup

Има обаче безброй начини за архивиране на файлове. и инструменти за неговото прилагане. Днешната бележка искам да насоча вниманието ви към една доста популярна помощна програма за инкрементално архивиране, наречена rdiff-backup.

rdiff-backup е базирано на Python приложение, което е много гъвкаво и сравнително лесно за използване. Може да работи както локално, така и през rsync / ssh, осигурявайки възможност за оптимално използване на каналите за данни в случай на отдалечено архивиране. Сред основните екстри на rdiff-backup могат да се разграничат следните характеристики.

Съвременните Linux дистрибуции имат rdiff-backup в хранилищата, така че не би трябвало да имате проблеми с инсталирането му. В случай, че използвате нещо друго, посетете главната страница на проекта, от която можете да изтеглите изходните кодове.

По-нататък „локален“ или „отдалечен“ се отнася до получателя на резервното копие. Първо, нека да разгледаме най-лесния начин за стартиране на помощната програма:

В режим по подразбиране rdiff-backup е доста тих и не ви безпокои с диагностични съобщения, докато не срещне грешка. Многословността на помощната програма може да се регулира с помощта на кратката опция '-v' или дългата й двойна ' --verbosity'. Стойността на опцията може да приема стойности от 0 до 9 (по подразбиране е 3). Например, ниво 4 ще ви даде обобщение на опциите на помощната програма, преди да започнете процедурата за копиране:

$ rdiff-backup -v 4 /var/log

Използване на rdiff-backup версия 1.2.8

Не може да се импортира модул за сигурност win32. Windows ACL

не се поддържа от файловата система в /var/log

escape_dos_devices не се изисква от файловата система в /var/log

Открити възможности за изходна (само за четене) файлова система:

Списъци за контрол на достъп Вкл

Разширените атрибути Вкл

Списъците за контрол на достъпа на Windows са изключени

Чувствителност към малки и малки букви Вкл

Бягство от DOS устройства Изкл

Бягство от крайните интервали Изкл

Ресурсите в стил Mac OS X се разклоняват

Информация за Mac OS X Finder е изключена

Не може да се импортира модул за сигурност win32. Windows ACL

не се поддържа от файловата система в log.backup/rdiff-backup-data/rdiff-backup.tmp.0

escape_dos_devices не се изисква от файловата система в log.backup/rdiff-backup-data/rdiff-backup.tmp.0

Открити възможности за целева (четене/запис) файлова система:

Промяната на собствеността е включена

Включено твърдо свързване

fsync() директории Вкл

Directory inc разрешения Вкл

Високобитови разрешения Вкл

Разрешенията за символна връзка са изключени

Разширените имена на файлове Вкл

Запазените имена на файлове в Windows са изключени

Списъци за контрол на достъп Вкл

Разширените атрибути Вкл

Списъците за контрол на достъпа на Windows са изключени

Чувствителност към малки и малки букви Вкл

Бягство от DOS устройства Изкл

Бягство от крайните интервали Изкл

Ресурсите в стил Mac OS X се разклоняват

Информация за Mac OS X Finder е изключена

Архивиране: must_escape_dos_devices = 0

Стартиране на огледален /var/log към log.backup

В това време като девятия ниво ще се съобщава за всеки етап:

$ rdiff-backup -v 9 /var/log

Вторник, 6 март 04:50:07 2012 г. Обработка на променения файл wtmp.1

Вторник, 6 март 04:50:07 2012 г. Записване на файлов обект в log.backup/rdiff-backup.tmp.121

Вторник, 6 март 04:50:07 2012 г. Копиране на атрибути от ('wtmp.1',) в log.backup/rdiff-backup.tmp.121

Вторник, 6 март, 04:50:07 2012 г. Време за настройка на log.backup/rdiff-backup.tmp.121 до 1330553626

Вторник, 6 март, 04:50:07 2012 г. Преименуване на log.backup/rdiff-backup.tmp.121 на log.backup/wtmp.1

Вторник, 6 март 04:50:07 2012 г. Копиране на атрибути от ()за влизане.резервно копие

Вторник, 6 март, 04:50:07 2012 г. Задаване на време за log.backup на 1330980760

Вт, 6 март 04:50:08 2012 г. Почистване

Този тип копиране е толкова лесно за изпълнение, колкото и локалното копиране. Всичко, което се променя, е форматът източник/дестинация. Освен това отдалечената система трябва да има инсталиран rdiff-backup и работещ SSH сървър. Например следната команда:

$ rdiff-backup -v 5 /var/log [email protected]::/var/backups/log.host123

  1. установете връзка със сървъра my-server.com чрез SSH;
  2. ще стартира rdiff-backup на сървъра в режим --server;
  3. ще прехвърля файлове от локалната система към сървъра my-server.com в директорията /var/backups/log.host123

$ rdiff-backup -v 5 [email protected]::/var/log /var/backups/logs-my-server.com

Получаване на информация за резултатите от копирането

Обикновено се изисква подробен изход на команди по време на периода на отстраняване на грешки и скриптове, не повече. За ежедневно наблюдение на резултатите от помощната програма е желателно да имате само кратко резюме. За това rdiff-backup предлага отделна опция „--print-statistics“:

$ rdiff-backup --print-statistics /var/log

Предупреждение: Файлът със списъка за контрол на достъпа не е намерен

Начален час 1331003360,00 (вторник, 6 март 05:09:20 2012 г.)

Краен час 1331003385.71 (вторник, 6 март, 05:09:45 2012 г.)

Изминало време 25.71 (25.71 секунди)

Размер на изходния файл 7006201 (6,68 MB)

MirrorFileSize 16991862 (16,2 MB)

Нов размер на файла 1504824 (1,44 MB)

Размер на изтрития файл 12116918 (11,6 MB)

Променен размер на източника 5501377 (5,25 MB)

Променен размер на огледалото 4874944 (4,65 MB)

Увеличаване на размера на файла 2136990 (2,04 MB)

TotalDestinationSizeChange -7848671 (-7,49 MB)

Активирайте изключването на файлове

"Не всичкикиселото мляко е също толкова здравословно“, гласи народна поговорка. Същото важи и за файловете при архивиране. Често в копираните директории има файлове, чийто размер е доста голям и няма смисъл да ги включвате в архива. Тук rdiff-backup (както и всички други помощни програми от този вид) има свои собствени възможности. Използвайки опцията ' --exlude ', можете да изключите отделни файлове и директории:

$ rdiff-backup --exclude /proc/[email protected]::/var/backups

Тази опция може да се използва произволен брой пъти:

$ rdiff-backup --exclude /proc --exclude /mnt --exclude /tmp/[email protected]::/var/backups

Понякога е по-лесно да посочите какво да копирате вместо какво да НЕ копирате. Следната команда ще копира /usr/local/bin, например, пропускайки /usr/bin:

$ rdiff-backup --include /usr/local --exclude /usr/[email protected]::/var/backups

Обърнете внимание, че когато използвате множество опции „ --include “ / “ --exclude “, техният приоритет зависи от реда, в който се появяват в командата.

rdiff-backup ви позволява да използвате модели, подобни на тези, използвани в rsync: ' ** ' е еквивалентен на всеки път, а ' * ' е всеки път без наклонена черта в края. Така например следната команда ще копира /usr/local и /var, но ще пропусне всичко останало:

$ rdiff-backup --include /usr/local --include /var --exclude '**' / /backup

Обърнете внимание на кавичките. Те са необходими, защото повечето обвивки третират звездичките като специални символи, превръщайки ги в заместващи знаци.

Един пример е малко по-сложен:

$ rdiff-backup --include '**txt' --exclude /usr/local/games --include /usr/local --exclude /usr --exclude /backup --exclude /proc / /backup

Тази команда ще копира всички файлове, чиито имена сазавършват с наставката 'txt'. Имайте предвид, че всички txt файлове от /usr/local и /backup също ще бъдат копирани, тъй като първият --include има по-висок приоритет.

Като цяло, помощната програма rdif--backup предлага доста богат набор от опции за филтриране на файлове, които няма смисъл да изброяваме изцяло, тъй като всичко вече е „откраднато преди нас“ в страницата за ръководство на приложението. За тези, които все още не са погледнали там, ще кажа, че можете да филтрирате файлове въз основа на регулярни изрази, типа на самите файлове (символни / твърди връзки, сокети, устройства, FIFO и т.н.), както и въз основа на списъци за включване / изключване на файлове, а самите списъци с файлове могат да бъдат предадени чрез stdin.