Правильное резервное копирование в 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
Ваша оценка: Нет Средняя оценка: 5 (3 votes)
11
pomodor

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

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
a

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

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
11
pomodor

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

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

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

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
a

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

dk

Ваша оценка: Нет
6

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

Ваша оценка: Нет
11
pomodor

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

Ваша оценка: Нет
6

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

Ваша оценка: Нет
11
pomodor

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

Ваша оценка: Нет
a

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

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

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

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

dk

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
a

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

Ваша оценка: Нет
3
gundenaf

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

Ваша оценка: Нет
a

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

Ваша оценка: Нет
a

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

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
Отправить комментарий
КАПЧА
Вы человек? Подсказка: зарегистрируйтесь, чтобы этот вопрос больше никогда не возникал. Кстати, анонимные ссылки запрещены.
CAPTCHA на основе изображений
Enter the characters shown in the image.
Linux I класса
Linux II класса
Linux III класса
Счетчики
  • Самый популярный сайт о Linux и Windows 10
О Либератуме

Liberatum — это новости мира дистрибутивов Linux, обзоры, сборки, блоги, а также лучший сайт об Ubuntu*.