Архивиране с 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
- установете връзка със сървъра my-server.com чрез SSH;
- ще стартира rdiff-backup на сървъра в режим --server;
- ще прехвърля файлове от локалната система към сървъра 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.