Pull to refresh

резервное копирование rsync-ом

Reading time 4 min
Views 142K
Если у тебя на компьютере не хранится дорогих тебе фотографий или
документов, эта заметка будет тебе не интересна. Если ты уже делаешь резервные копии и механизм работы с ними тебя полностью устраивает, эту заметку тоже лучше пропустить. Если ты считаешь, что хорошо разбираешься в linux, то вряд ли почерпнёшь в ней что-то новое. Для остальных — делюсь .

Зачем нужно делать резервные копии важных данных?


Как сказал Воланд в «Мастер и Маргарита», ужасно не то, что человек смертен, а то, что он внезапно смертен. То же самое верно относительно жёстких дисков. У меня за мою жизнь сдохло, кажется, всего 2 НЖМД, один сдох внезапно (очень ценные данные были утеряны), другой — почти внезапно (удалось восстановить часть данных), ситуация среди моих знакомых в среднем отличается не сильно. Статистика смерти винтов есть куда менее субъективная, от гугла — в среднем винт живёт несколько лет, и в 60% случаев винты дохнут внезапно, даже для S.M.A.R.T.

Кроме аппаратных, есть ещё и программные причины утери данных — однажды вирус WIN95.CIH снёс первые несколько мегабайт диска, включая FAT, что привело к полной недоступности данных. Ушёл месяц яростного программирования и лазанья с DiskEdit, чтобы в условиях отсутствия Интернета разобраться со структарами FAT-а и восстановить их. Однажды Patrition Magic завис при переносе раздела. Однажды при работе
Partition Magic-а отключили электричество в щитке на лестничной площадке. В последних двух случаях важные данные не потерялись — но это просто везение. Если вы подключены к сети, то есть вероятность взлома и уничтожения важных данных злоумышленником. От такого рода повреждений RAID-массив уже не спасёт.

Как оценить целесообразность бэкапа?


Есть такое понятие, как жёсткость риска — это вероятность возникновения риска, помноженная на стоимость риска в деньгах. Стоимость риска в данном случае — это то, сколько ты готов был бы заплатить денег за восстановление всей утеряной информации. Оценим вероятность риска снизу. Оценить я могу только аппаратные сбои, ибо остальной статистики у меня нет, да и этой причины для меня уже
было достаточно. Вероятность смерти жёсткого диска за 3 года — не менее 24% в любом случае, независимо от того, новый он или нет. Вероятность, что смерть будет внезапной, как я уже писал, 60%. Итого вероятность внезапной смерти за 3 года — 14%. Если используются два ЖД без зеркалирования, вероятность смерти хотя бы одного из них за этот период — 26%.
Конечно, нужно учитывать и ценность данных на этих дисках — у меня 2 ЖД с ценными данными (потеря любого фатальна) и один с музыкой и фильмами — расстраиваться о утери коллекции избранной мною музыки буду, но переживу.

Когда-то я был студентом и порой жил на 600 рублей в месяц, но теперь я могу позволить себе некоторые вложения в безопасность данных. Сегодня я купил внешний (USB) жёсткий диск на 320 гигабайт, и это удовольствие обошлось мне в 3000 рублей. Почему жёсткий диск? Потому, что данных у меня много — только дорогие моему сердцу фотки занимают гигабайт этдак 40. Да и времени на это тратить много не хочется и хотелось бы, не сортируя всё то, что накопилось за многие года на «важные — неважные» забэкапить вообще всё, кроме музыки и фильмов. Почему внешний? Возможность хранить отдельно от компьютера на случай кражи (хотя это более актуально для ноутбуков), не присоединённым к компьютеру (на случай ошибки, фатальной для данных).

Безопасность.


Я не параноик, но жёсткий диск содержит данные, безопасность которых нужна не только мне — например, совсем не обязательно попадать в руки посторонних фотографиям знакомых девушек в стиле «ню». Соответственно, диск шифруем — я зашифровал весь. В debian всё делается из коробки за несколько минут и потому я нисколько не сомневаюсь, что смогу потом с лёгкостью эти данные восстановить, главное — не забыть записать используемый каскад алгоритмов и подсказку к паролю на бумажке и хранить её в коробке с винтом. Использование сторонних коммерческо-крякнутых средств я бы очень не рекомендовал.

Приступаем.


Я, не долго думая, решил забэкапить все неиспользуемые (но те, которые на всякий случай лучше не терять) разделы целиком, для теста взял раздел с когда-то установленным WIN98:

# cp /dev/hda1 /mnt/backup/images/
тестируем:
# mkdir /mnt/hda1-backup-test
# mount /mnt/backup/images/hda1 /mnt/hda1-backup-test -o loop
# ls /mnt/hda1-backup-test/
boot.ini io.sys ntdetect.com (и так далее)


Ура! Работает!

Так как рабочие данные у меня находятся в файловых системах ext2 и ext3, хочется использовать тот факт, что аттрибуты файлов в ext2/ext3 могут содержать информацию о его бэкапе. Однако, dump использовать крайне не рекомендуется на смонтированных файловых системах — www.rhd.ru/docs/manuals/enterprise/RHEL-4-Manual/admin-guide/s1-disaster-rhlspec.html, dump.sourceforge.net/isdumpdeprecated.html. Появляется огромный выбор между общими технологиями бэкапа — tar, cpio, backup-manager, bacula и так далее, но я пока остановился на rsync + cp — ибо результат можно будет прозрачно прочитать где угодно, ничего не распаковывая и не считывая все инкрементальные архивы.

$ sudo rsync --archive --one-file-system /etc /home /root --delete /mnt/backup/rsync/`date +%F--%H-%M`

Нужно сохранить несколько последних бэкапов? Пожалуйста, используем то, что параметр --link у cp создаёт жёсткую ссылку на файл вместо его копирования.

$ sudo rsync --archive --one-file-system /etc /home /root --delete /mnt/backup/rsync/latest/
$ sudo cp --archive --link /mnt/backup/rsync/latest/
/mnt/backup/rsync/`date +%F--%H-%M`


Проверяем:

$ ls /mnt/backup/rsync/
2008-04-03--04-29 2008-04-03--04-34 latest


Хочется увидеть различия с бэкапом? «Эмулируем» копирование текущего состояния в состояние бэкапа.

$ sudo rsync --archive --dry-run --verbose --one-file-system /etc /home /root --delete /mnt/backup/rsync/latest/

Хочется увидеть различия между бэкапами? Аналогично.

$ sudo rsync --archive --dry-run --verbose --delete
/mnt/backup/rsync/2008-04-03--04-41/
/mnt/backup/rsync/2008-04-03--04-29/


Вот и всё.

Источники:
О шифровании: aiz-linux.blogspot.com/2007/11/gnulinux.html
О винтах: habrahabr.ru/blog/hardware/24009.html,
mydebianblog.blogspot.com/2007/11/blog-post.html
О rsync и не только: www.mikerubel.org/computers/rsync_snapshots

Также можно посмотреть:
rsnapshot — тоже использует rsync и жёсткие ссылки, лучше подходит для резервного копирования на несъёмный носитель или в сеть: habrahabr.ru/blogs/linux/45912
Tags:
Hubs:
+35
Comments 35
Comments Comments 35

Articles