Правильное резервное копирование в Linux

На Либератуме планируется опубликовать цикл статей «Из новичков в гуру», в рамках которого предполагается познакомить новичков в Linux читателей с самыми полезными командами, которые способны раскрыть всю мощь этой замечательной операционной системы. Начнем с резервного копирования.

1. Архивация директории с максимальным сжатием bzip2

Следующая команда архивирует директорию 'scripts' и сожмет ее с максимальной степенью компрессии:

tar -c scripts/ | bzip2 -9 > scripts.tar.bz2

2. Архивация целого раздела с одновременным сжатием gzip

Команда снимет точную копию всего раздела, одновременно упаковывая данные программой сжатия gzip:

dd if=/dev/sda1 | gzip -c9 > /media/usb/sda1.dd.gz

Восстановить данные можно следующей командой:

cat /media/usb/sda1.dd.gz | gzip -d | dd of=/dev/sda1

Создание сжатой копии раздела с параллельным копированием на удаленный компьютер через безопасное соединение ssh:

dd bs=1M if=/dev/sda | gzip -c9 | ssh user@host 'dd of=sda.dd.gz'

3. Архивация с компрессией конфигурационных файлов из /etc

Из директории /etc выбираются только файлы .conf и архивируются в tar.bz2:

find /etc/ -name '*.conf' | tar -c --files-from=- | bzip2 -9 > system_confs.tar.bz2

4. Создание резервной копии MBR

MBR — Master Boot Record. Критическая область на жестком диске, утрата которой ведет к потере доступа ко всем данным на диске. Поэтому, неплохо было бы создать резервную копию:

dd if=/dev/sdb of=my.mbr bs=466 count=1

Восстановить можно следующим образом:

dd if=my.mbr of=/dev/sdb bs=466 count=1

5. Создание полной копии сайта

Команда выкачивает сайт целиком. Следует отметить, что за такое легко могут забанить. На некоторых сайтах бан будет выдан автоматически. Практическая польза от такой команды сомнительная, т.к. администратор сайта делает резервную копию совсем другими методами, а пользователю целый сайт, как правило, не нужен, достаточно сохранить нужные страницы или поставить на них закладки.

wget --mirror http://kernel.org

6. Автоматическая нумерация резервных копий

Следующая команда создаст сжатую копию содержимого директории /etc, причем в имени результирующего файла будет стоять дата архивирования. Удобно для использования при автоматическом архивировании по расписанию.

tar cvjf etc_$(date +%Y%m%d).tar.bz2 /etc/

Полученный архив можно распаковать следующей командой:

tar xvjf etc.tar.bz2

7. Копирование всех файлов заданного типа

Следующая команда найдет все файлы в формате gif в директории /var/www и скопирует их в директорию /tmp/gifs:

find /var/www/ -name '*.gif' | xargs cp -va --target-directory=/tmp/gifs

8. Удаленное создание резервной копии базы данных MySQL

База данных пользователя user на удаленном компьютере host будет скопирована в простой текстовой файл data.sql.

ssh user@host '( mysqldump --password='pass' data > data.sql )'

9. Нарезка архива на части заданного размера

Команда разделяет файл на части, размером не превышающие 1 Гб. Команда может быть полезна тогда, когда используются файловые системы с жесткими ограничениями на размер одного файла (например, FAT32).

split -b 1000m linux-commands.iso

Восстановить фрагменты обратно в единый файл можно так:

cat xa* > linux-commands.iso

field_vote: 
Ваша оценка: Нет Средняя: 5 (3 оценки)
Главная тема: 
Дистрибутивы: 

Комментарии

Эх, сразу вспоминается админская юность: самопальный скриптик в crontab, пробегающий в 4 ночи по пользовательским директориям :)

Оценка: 
Средняя: 5 (1 оценка)

Я в Линуксе новичок, и никак не смог разобраться, как сделать элементарный бэкап Убунту. В интернете предлагают десятка два разных способов, в большинстве из них — список команд для терминала на полторы страницы. Дело осложняется тем, что системные файлы Убунту раскиданы по двум директориям — корневой и home (скрытые). В конце концов плюнул и решил, что легче её в случае сбоя переустановить заново. В Семёрке, кстати, бэкап делается парой щелчков мыши.

Оценка: 
Средняя: 5 (1 оценка)

Я тоже рассматриваю системные файлы как уже имеющие резервную копию в виде дистрибутива и никогда их не архивирую. Из системного сохраняю только конфиги:

tar cf etc.tar /etc
bzip2 -9 etc.tar

Еще архивирую логи, дампы баз данных и очень немногое из /home.

Оценка: 
Средняя: 5 (1 оценка)

Кстати /etc и конфиги очень даже может иметь смысл хранить в гите. И скриптуется просто, и изменения легче отсмотреть да и места сожреть таки меньше — пустячок, а приятно.

dk

Оценка: 
Пока без оценки

в Убунту с версии 12.04, есть встроенная утилита для бекапа!?;) Зачем терминал для рядового юзера? 4 клика мыши и емкий внешний накопитель, и усе;)

Оценка: 
Пока без оценки

Зачем 4 клика мыши, если есть cron?

Оценка: 
Пока без оценки

Согласен с Вами, но рядовому пользователю проще работать с GUI и через ярлычок!?:)

Оценка: 
Пока без оценки

Плевать на то, что проще. Делать нужно правильно.

Оценка: 
Пока без оценки

> В Семёрке, кстати, бэкап делается парой щелчков мыши.

За 7ку сказать не могу, но:
1. Родные средства бэкапа версий до 7 (ХP и ранее) подводили — прецеденты имели место быть.
2. Альтернативные средства бэкапа не подводили.

Вопрос — а стоит ли рисковать своими данными, чтобы проверить — подведут ли родные средства бэкапа в новой версии или просто пользовать проверенные решения?

Бонус: альтернативные средства обычно занимали меньше времени на архивацию/восстановление.

dk

Оценка: 
Средняя: 5 (1 оценка)

Спасибо! Отличный материал! Однозначно в закладки!

Оценка: 
Пока без оценки

Прошлый админ на работе использовал rsync для этого и добавил в cron. Корректно ли это?

Оценка: 
Пока без оценки

Может немного не в тему
При установке системы делю диск
на четыре раздела т.е. свап, корневой,
домашний. и четвертый который форматиуем
при первоначально установке в ext4.
и никак его не обозначаем.
Это будет у вас основная часть диска где вы будете
хранить "награбленное".
Преимущества которые вы получаете.
Во время работы ОС раздел не подключен.
Чтобы его подключить нужны рутовские права.
При переустановке системы просто не трогаем этот раздел.
и у нас все сохраняется все на этом разделе.

Оценка: 
Пока без оценки

Не стоит забывать и про утилиту par2, позволяющую добавить избыточность в данные и при помощи восстановительной информации исправлять повреждения.

Оценка: 
Средняя: 5 (1 оценка)

Комментировать

Filtered HTML

  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <strike> <code> <h2> <h3> <h4> <h5> <del> <img>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.