Команда
dump, работает с блочными устройствами и деревом
inode, умеет создавать, как полную
резервную копию данных, так и инкрементные дампы, до 10 уровней, целого диска или любого, отдельно взятого раздела.
Dump работает, даже если файловая система, бэкап которой вам необходимо сделать, в данный момент является "живой", то есть, смонтирована и используется ( как правило, так и есть ), перед копирование делается снимок (
snapshot ) файловой системы, что-бы убедится, что в процессе работы утилиты, не было сделано никаких изменений. Кроме того, команда
dump умеет сжимать данные.
Dump умеет разделять резервную копию на куски указанной длины или по мере заполнения принимающего устройства.
По-умолчанию, если не было явно назначено место хранения резервной копии,
dump создает ее в устройстве для хранения на магнитной ленте.
Типичный процесс создания резервной копии данных, может выглядеть следующим образом:
/# dump -0auL -f /root/backup.dump /dev/da0s1d
DUMP: Date of this level 0 dump: Mon Jun 15 16:02:55 2009
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping snapshot of /dev/da0s1d (/var) to /root/backup.dump
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 129172 tape blocks.
DUMP: dumping (Pass III) [directories]
DUMP: dumping (Pass IV) [regular files]
DUMP: DUMP: 129140 tape blocks on 1 volume
DUMP: finished in 23 seconds, throughput 5614 KBytes/sec
DUMP: level 0 dump on Mon Jun 15 16:02:55 2009
DUMP: Closing /root/backup.dump
DUMP: DUMP IS DONE
В данном примере, с помощью команды
dump, делается полная резервная копия ( флаг
-0 ), файла устройства
/dev/da0s1d, смонтированного в
/var, в файл
/root/backup.dump. Флаг
-L сигнализирует, что раздел, подлежащий резервному копированию, находится на живой файловой системе и перед началом нужно сделать снимок данного раздела и уже затем приступать к операции.
Если флаг -L установлен, dump создает снимок в директории .snap, корневого раздела файловой системы. Файл снимка будет удален, как только dump завершит работу.
Всегда используйте данную опцию на живой файловой системе. Если dump с опцией -L применяется к разделу, находящемуся в режиме "только чтение" ( read only ), или к не смонтированному разделу, опция -L будет проигнорирована.
Опция
-а, означает
"auto-size", то есть будет заполнено все cвободное место на носителе
Опция
-u, указывает сохранить ( обновить ) служебную информацию в файл
/etc/dumpdates, она будет использована при следующих бэкапах:
/# cat /etc/dumpdates
/dev/da0s1d 0 Mon Jun 15 16:02:55 2009
Для создания инкрементного архива, вам нужно указать в опциях команды, уровень дампа от 1 до 9 ( 0 - полный архив ), при этом,
dump будет использовать данные о времени последнего резервного копирования из файла
/etc/dumpdates.
Выглядит это следующим образом:
/# dump -1auL -f /usr/backup.dump1 /dev/da0s1d
DUMP: Date of this level 1 dump: Mon Jun 15 16:10:08 2009
DUMP: Date of last level 0 dump: Mon Jun 15 16:02:55 2009
DUMP: Dumping snapshot of /dev/da0s1d (/var) to /usr/backup.dump1
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 153 tape blocks.
DUMP: dumping (Pass III) [directories]
DUMP: dumping (Pass IV) [regular files]
DUMP: DUMP: 137 tape blocks on 1 volume
DUMP: finished in less than a second
DUMP: level 1 dump on Mon Jun 15 16:10:08 2009
DUMP: Closing /usr/backup.dump1
DUMP: DUMP IS DONE
В результате, также будет обновлена информация в файл
/etc/dumpdates:
/# cat /etc/dumpdates
/dev/da0s1d 0 Mon Jun 15 16:02:55 2009
/dev/da0s1d 1 Mon Jun 15 16:10:08 2009
Создав резервную копию файловой системы, желательно переместить файл дампа в более безопасное место, например на, специально предназначенный для этого, сервер бэкапов, что-бы избежать потери уже сохраненных данных в случае аппаратного сбоя, или можно сразу создать резервную копию с сохранением на удаленный сервер, через безопасное
SSH соединение. Делается это следующим образом:
vds-admin /# dump -0auL -f - /dev/da0s1d | bzip2 | ssh backup@192.168.50.50 -p 22 dd of=/root/vds-admin.dump
В результате будет создана полная резервная копия (
-0 ) устройства
da0s1d и отправлена на удаленный сервер
backup_server с именем пользователя
backup. Для сжатия будет использован
bzip2 ( архиватор можно использовать, какой вам больше нравится,
gzip,
compress ), что-бы уменьшить трафик, далее команда
dd примет входной поток и отправит его в файл
/root/vds-admin.dump.
Полный вывод проделанной операции, выглядит так:
vds-admin /# dump -0auL -f - /dev/da0s1d | bzip2 | ssh backup@192.168.50.50 -p 22 dd of=/backup/vds-admin.dump
DUMP: Date of this level 0 dump: Mon Jun 15 17:03:39 2009
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping snapshot of /dev/da0s1d (/var) to standard output
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 129173 tape blocks.
DUMP: dumping (Pass III) [directories]
DUMP: dumping (Pass IV) [regular files]
DUMP: DUMP: 129141 tape blocks
DUMP: finished in 33 seconds, throughput 3913 KBytes/sec
DUMP: level 0 dump on Mon Jun 15 17:03:39 2009
DUMP: DUMP IS DONE
126240+1 records in
126240+1 records out
64635271 bytes transferred in 22.252234 secs (2904664 bytes/sec)
При использовании архиватора compress, значительно снижается нагрузка на сеть, но ценой повышенной нагрузки на процессор.
Команда
restore, выполняет восстановление данных, из сохраненных ранее, программой
dump, резервных копий. Например можно восстановить из резервной копии данных, удаленный по неосторожности, файл. Как и
dump,
Restore можно использовать для восстановления файлов по сети.
Обычный сценарий для команды
restore,
восстановление из резервной копии на пустой раздел, отформатированный с помощью утилиты
newfs. Сначала восстанавливается полная резервная копия, после чего можно восстанавливать инкрементные архивы, в порядке их создания.
Вышеописанная процедура выглядит примерно следующим образом:
# newfs /dev/da0s1a
# mount /dev/da0s1a /mnt
# cd /mnt
# restore -r -f /usr/dumpfile
В данном примере, команда
restore восстановит резервную копию данных
/usr/dumpfile, в текущую директорию, перейти в нужную директорию можно с помощью команды
cd.
Еще одна замечательная особенность команды
restore, это возможность работы в интерактивном режиме, то есть вы можете просматривать содержимое резервной копии данных, листать файлы и директории, помечать необходимое для восстановления. Эта возможность просто незаменима при восстановлении файлов, удаленных по ошибке.
В интерактивной оболочке восстановления, присутствует достаточно команд, обеспечивающих вполне комфортную навигацию по содержимому дампа и выбора нужных файлов для восстановления. Команды
ls,
cd,
pwd, являются эквивалентами команд из обычной оболочки и используются для навигации по резервной копии данных. Используя команды
add и
delete, можно выделять файлы и директории для последующего восстановления. После того как необходимые данные выделены, можно использовать команду extract, для их восстановления.
Выглядит этот процесс примерно следующим образом:
# restore -i -f /usr/dump1
restore > ls
.:
.cshrc bin/ dev/ home@ mnt/ sbin/ var/
.profile boot/ dist/ lib/ proc/ sys@
.snap/ cdrom/ entropy libexec/ rescue/ tmp/
COPYRIGHT compat@ etc/ media/ root/ usr/
restore > add sbin
restore > add rescue
restore > extract
restore > quit
Также при использовании интерактивного режима команды
restore, для восстановления резервной копии данных из дампа, можно воспользоваться командой
what
restore > what
Dump date: Sat Apr 14 16:40:03 2007
Dumped from: the epoch
Level 0 dump of / on server.example.com:/dev/ad0s1a
Label: none
Вот собственно и все. Не забудьте полистать соответствующие страницы
man руководства, там все довольно подробно расписано.
Удачных бэкапов.