Цифровой садик - приветственная

Цифровой садик - приветственная | Полный список всего, что тут есть | RSS | Подписаться через follow.it

05.03.2025

бэкапиться

Вытащенное из незапамятных времен, чтобы было.

Когда я последний раз делала бэкап?

Если это было недавно, и за прошедшее время ничего интересного и стоящего сохранения на компе не появилось, то прекрасно. Если нет, сделай. Прямо сейчас. Как можно скорее.

Совет не новый, как и большинство похожих советов. И ценность его понимаешь только тогда, когда что-то случается.

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

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

7 марта 2016. Разгребаю старые бэкапы. Очень понимаю, почему мне не хотелось делать новые. Потому что множить бардак, ругательные слова. Потому что у меня эта тема не продумана как следует. И если я тут сделаю приемлемо, это будет плюс много спокойствия и уверенности.

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

10 марта 2016

В порядке подготовки всего, что стоит сохранять, к сохранению, сделала очередной заход на упорядочение почты. Теперь почта вся лежит в одной папке, вся индексируется, одинаковые файлы удалены, и теперь я знаю, что у меня на нынешний момент 66 918 сообщений (это тех, которые считаются разными, не дублей), и занимает это счастье 8,5 гигабайт. Ну, понятно, что почта за несколько лет, что не только переписка с людьми, но и рассылки, а то и спам. И понятно, что не так страшны письма, как аттачи к ним. Но ничего так, ничего себе.

16 марта 2016.

Потихоньку бэкаплюсь. rdiff-backup, пока пинаю вручную. Разбираюсь с тем, что нужно, что не очень. Разгребаю какие-то давние-давние залежи. Смотрю, что происходит, когда бэкапимая папка меняется. И вообще, как оно всё. Потихоньку думаю, как сделать бэкапление по возможности автоматическим, когда всё немного устаканится. Понятно же, что разгребать - только вручную, решать только самой, это никому доверить нельзя. А вот уже решённое-разобранное-опробованное можно и компу поручить.

И да, правда, наличие "правдоподобного" бэкапа очень успокаивает. Даже частичного. Потому что за что-то уже спокойнее. За почту. За библиотеку и прочие подборки разновсякого. За какие-то свои текстики. За сохранность паролей. И надо будет намыслить, куда делать ещё одну копию. Потому что одной мало для спокойствия.

Инструмент, которым я собиралась пользоваться - rdiff-backup. Эта штука написана на python и использует в качестве основы rsync.

Создание бэкапов

В создании бекапов также проста как rsync:

rdiff-backup /source/path /destination/path

В результате в /destination/path будет создано зеркало каталога /source/path.

Если мы внесем какие-либо изменения в /source/path, а потом выполним команду бекапа повторно, утилита определит, что именно изменилась и добавить копию только изменившихся файлов, а может даже только изменившуюся часть этих файлов, хотя фиг знает. В любом случае появится новый слепок каталога.

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

rdiff-backup -l /destination/path
Found 18 increments:
    increments.2012-07-14T21:51:05+06:00.dir   Sat Jul 14 21:51:05 2012
    increments.2012-07-15T21:51:03+06:00.dir   Sun Jul 15 21:51:03 2012
    increments.2012-07-15T22:02:30+06:00.dir   Sun Jul 15 22:02:30 2012
    increments.2012-07-16T21:51:08+06:00.dir   Mon Jul 16 21:51:08 2012
    increments.2012-07-19T21:51:08+06:00.dir   Thu Jul 19 21:51:08 2012
    increments.2012-07-25T21:51:02+06:00.dir   Wed Jul 25 21:51:02 2012
    increments.2012-07-27T21:51:04+06:00.dir   Fri Jul 27 21:51:04 2012
    increments.2012-07-28T21:51:08+06:00.dir   Sat Jul 28 21:51:08 2012
    increments.2012-07-30T21:51:04+06:00.dir   Mon Jul 30 21:51:04 2012
    increments.2012-07-31T21:51:09+06:00.dir   Tue Jul 31 21:51:09 2012
    increments.2012-08-01T21:51:03+06:00.dir   Wed Aug  1 21:51:03 2012
    increments.2012-08-07T21:51:03+06:00.dir   Tue Aug  7 21:51:03 2012
    increments.2012-08-11T21:51:06+06:00.dir   Sat Aug 11 21:51:06 2012
    increments.2012-08-12T21:51:07+06:00.dir   Sun Aug 12 21:51:07 2012
    increments.2012-08-13T21:51:03+06:00.dir   Mon Aug 13 21:51:03 2012
    increments.2012-08-16T21:51:08+06:00.dir   Thu Aug 16 21:51:08 2012
    increments.2012-08-19T21:51:03+06:00.dir   Sun Aug 19 21:51:03 2012
    increments.2012-08-23T00:38:15+06:00.dir   Thu Aug 23 00:38:15 2012
Current mirror: Sat Aug 25 01:25:01 2012

Утилита делает инкремент только в том случае, если были внесены какие-то изменения в файлы и каталоги со времени последнего выполнения бекапа. Благодаря этому мы получаем ряд полезных плюшек:

  • Возможность экономить дисковое пространство. Если я не ошибаюсь, инкременты делаются до тех пор, пока их суммарный объем не превысит половины объема от последнего полного бекапа. Когда это случается, делается снова полный бекап
  • Возможность вернуться не просто к последнему бекапу, а бекапу за определенное число
  • Управлять всем этим хозяйством относительно просто

Что бы получить краткую сводку после выполненного бекапа, достаточно в команду внести опцию –print-statistic

rdiff-backup --print-statistic /source/path /destination/path
--------------[ Session statistics ]--------------
StartTime 1345877958.00 (Sat Aug 25 12:59:18 2012)
EndTime 1345878004.57 (Sat Aug 25 13:00:04 2012)
ElapsedTime 46.57 (46.57 seconds)
SourceFiles 33020
SourceFileSize 467469521 (446 MB)
MirrorFiles 1
MirrorFileSize 0 (0 bytes)
NewFiles 33019
NewFileSize 467469521 (446 MB)
DeletedFiles 0
DeletedFileSize 0 (0 bytes)
ChangedFiles 1
ChangedSourceSize 0 (0 bytes)
ChangedMirrorSize 0 (0 bytes)
IncrementFiles 0
IncrementFileSize 0 (0 bytes)
TotalDestinationSizeChange 467469521 (446 MB)
Errors 0
--------------------------------------------------

Восстановление данных

Что бы восстановить данные, необходимо выполнить команду вида:

rdiff-backup -r now /destination/path /local/path

В результате мы восстановим данные из последнего выполненного бекапа в каталог /local/path.

Поскольку в /destination/path хранится полное дерево того, что мы бекапим, то можно указать для восстановления только определенный файл или каталог, например так:

rdiff-backup -r now /destination/path/some/directory/or/file /local/path

Мейби, глоббинг здесь могет работать, но не проверено.

Чтобы восстановить файлы 5 дневной давности, можно воспользоваться такой командой:

rdiff-backup -r 5D /destination/path/some/directory/or/file /local/path

Можно восстановить и по определенной дате:

rdiff-backup -r 2012-08-05 /destination/path/some/directory/or/file /local/path

, но нужно сначала просмотреть список доступных инкрементов, после чего указать TIMESTAMP того, что Вам нужен:

rdiff-backup -r 2012-08-13T21:51:03+06:00 /destination/path/some/directory/or/file /local/path

Удаляем старое

Естественно, что хранить кучу устаревшего файла 5 лет нет смысла. Rdiff-backup умеет и прибирать за собой. Давайте удалим бекапы старше, чем 16 недель:

rdiff-backup --remove-older-than 16W /destination/path

Удаление старых бекапов происходит таким образом, что если в тот день имеется только инкремент полного бекапа, то останется все предыдущие до момента создания этого инкремента бекапы вплоть до предыдущего полного бекапа. Таким образом гарантируется, что удаление старых бекапов не приведет к неработоспособности оставшихся инкрементов.

С rsync

Поскольку rdiff используется для работы rsync, то естественно он умеет делать бекапы на удаленный хост. Команда для создания бекапов в этом случае выглядит примерно так:

rdiff-backup /source/path user@backup-host::/destination/path

Аналогично можно проводить восстановление данных и просмотр уже сделанных бекапов. Для автоматизирования создания бекапов и удаления старых необходимо будет сделать очевидные вещи:

  • настроить ssh-авторизацию по ключу
  • наваять простенький скрипт
  • добавить задание в cron

Типа, чот такое.

#!/bin/bash
# backup script with using rdiff-backup

if ping -c 1 -s 1 -W 1 backup-server
then
    rdiff-backup /source/path user@backup-server::/destination/path
    rdiff-backup --remove-older-than 16W user@$backup-server::/destination/path
fi

При необходимости пишем логи, настраиваем отправку отчетов по электронной почте.

[2015-02-03 Вт 01:25]

Ещё ссылок с чем-то по теме


Если у вас есть мысли, комментарии, предложения или отклики по поводу этой страницы или этого цифрового сада в целом, напишите мне сообщение на agnessa@agnessa.pp.ru. Мне ооочень интересно!

Задонатить.


An IndieWeb Webring 🕸💍