amanda, bacula, BackupPC. Это клиент-серверные системы, имеющие много опций, настройка которых довольно сложна. Некоторые из них предоставляют дружественный веб-интерфейс, чтобы компенсировать это. Но в Debian есть десятки других программ для резервного копирования на все возможные случаи, в чём можно легко убедиться с помощью apt-cache search backup.
rsync ежедневно используется для резервного копирования этих серверов.
rsync предшествует дублирование содержимого предыдущей резервной копии с помощью жёстких ссылок, что предупреждает использование слишком большого дискового пространства. Процесс rsync затем заменяет только те файлы, которые были изменены с момента создания предыдущей копии. С помощью этого механизма огромное число резервных копий можно хранить на небольшом пространстве. Поскольку все резервные копии немедленно становятся доступными (например в разных каталогах на сетевом ресурсе), можно быстро выполнять сравнения между двумя заданными датами.
dirvish. Она использует хранилище резервных копий («bank» — «банк» — в её терминологии), в котором размещает копии наборов файлов резервных копий с временными метками (в документации dirvish эти наборы называются «vaults» — «подвалы»).
/etc/dirvish/master.conf. Он определяет местоположение пространства для резервных копий, список управляемых «подвалов» и значения сроков хранения резервных копий по умолчанию. Остальные настройки находятся в файлах bank/vault/dirvish/default.conf и содержат конфигурацию соответствующего набора файлов.
Пример 9.3. Файл /etc/dirvish/master.conf
bank:
/backup
exclude:
lost+found/
core
*~
Runall:
root 22:00
expire-default: +15 days
expire-rule:
# MIN HR DOM MON DOW STRFTIME_FMT
* * * * 1 +3 months
* * 1-7 * 1 +1 year
* * 1-7 1,4,7,10 1
bank указывается каталог, в котором хранятся резервные копии. Настройка exclude позволяет указать файлы (или типы файлов), которые не должны включаться в резервную копию. Runall — это список наборов файлов для резервного копирования с временной меткой для каждого набора, что позволяет установить корректную дату копии, если резервное копирование ну запускается периодически в определённое время. Нужно указать время, непосредственно предшествующее времени запуска (по умолчанию в Debian это 22:04, в соответствии с файлом /etc/cron.d/dirvish). Наконец, настройки expire-default и expire-rule определяют политику хранения резервных копий. В приведённом выше примере резервные копии, созданные в первое воскресенье каждого квартала, хранятся вечно, созданные в первое воскресенье каждого месяца — удаляются через год, а созданные в другие воскресенья — через 3 месяца. Прочие ежедневные резервные копии хранятся 15 дней. Порядок правил имеет значение: Dirvish применяет последнее подходящее правило или expire-default, если ни одно из других правил expire-rule не подходит.
Пример 9.4. Файл /backup/root/dirvish/default.conf
client: rivendell.falcot.com
tree: /
xdev: 1
index: gzip
image-default: %Y%m%d
exclude:
/var/cache/apt/archives/*.deb
/var/cache/man/**
/tmp/**
/var/tmp/**
*.bak
hostname), а именно файлы корневого каталога (tree: /) за исключением тех, которые перечислены в exclude. Резервная копия будет ограничена содержимым одной файловой системы (xdev: 1). В неё не войдут файлы из других точек монтирования. Будет создан индекс сохранённых файлов (index: gzip), и имя образа будет соответствовать текущей дате (image-default: %Y%m%d).
dirvish --vault vault --init.После этого при ежедневном вызове dirvish-runall будет автоматически создаваться новая резервная копия после удаления устаревшей.