Создаём резервные копии при помощи TAR

Резервные копии являются неотъемлемой частью безопасности системы. Без них невозможна работа предприятий, в частности банков, где снимки (snapshot) делаются чуть ли не каждый час.

Однако масштабы и регулярность не сопоставима с жизнью одного человека. В личной жизни мы также имеем очень большое количество драгоценных данных: семейные фотографии, личные документы и рабочие файлы, которые мы не должны терять. И чтобы не допустить этого мы должны делать резервные копии.

Виды резервных копий

Существует несколько видов резервного копирования, каждый из них обладает своими особенностями, достоинствами и недостатками:

  1. Полная копия - копируется абсолютно всё, а для восстановления данных нужна только последняя полная копия (Level N).
[       ]    [       ]    [       ]    [  10G  ]
[       ]    [       ]    [  10G  ]    [  10G  ]
[       ] -> [  10G  ] -> [  10G  ] -> [  10G  ]
[  50G  ]    [  50G  ]    [  50G  ]    [  50G  ]

 Level 0      Level 1      Level 2      Level N
  1. Дифференциальная - копируются только изменения прошлой полной копии, а для восстановления данных нужна полная копия и последняя дифференциальная копия (Level N+0).
[       ]    [       ]    [       ]    [  10G  ]
[       ]    [       ]    [  10G  ]    [  10G  ]
[       ] -> [  10G  ] -> [  10G  ] -> [  10G  ]
[  50G  ]    [       ]    [       ]    [       ]

 Level 0      Level 1      Level 2      Level N
  1. Инкрементальная - копируются только изменения прошлой инкрементальной копии, для восстановления данных нужна полная копия и все инкрементальные копии (Level N+…+0).
[       ]    [       ]    [       ]    [  10G  ]
[       ]    [       ]    [  10G  ]    [       ]
[       ] -> [  10G  ] -> [       ] -> [       ]
[  50G  ]    [       ]    [       ]    [       ]

 Level 0      Level 1      Level 2      Level 3

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

Полная Дифференциальная Инкрементальная
Объём - + ++
Надежность ++ + -

Схемы ротации

В реальности чаще всего используется комбинации методов, которые называются “схемами ротации”. Самая популярная схема ротации “дед-отец-сын” подразумевает:

  1. Ежедневное создание инкрементальной копии (“сын”).
  2. Еженедельное создание полной копии (“отец”).
  3. Ежемесячное полной копии (“дед”).

Синтетическая копия

В разговорной речи и научно-популярной иногда попадается понятие “синтетическая копия”. Если говорить простыми словами, то синтетическая копия - это полная копия, собранная из других инкрементальных/дифференциальных. Такая копия создаётся сильно проще, но вместе с этим она менее надёжная. Повреждение одного из инкрементальных копий может привести к повреждению полной, поэтому создание таких копий в особо важных местах нежелательно.

Создаём резервную копию при помощи TAR

Самый простой вариант создать полную резервную копию - это сделать tar архив. Сделать это можно одной командой и большинстве случаев не потребует установки дополнительных программ:

tar --create \
    --gzip \
    --file=$HOME/backup/$(date --iso-8601).tar.gz \
    --exclude=$HOME/backup \
    $HOME

Похожим образом можно создавать и инкрементальные копии:

tar --create \
    --gzip \
    --file=$HOME/backup/$(date --iso-8601).tar.gz \
    --listed-incremental=$HOME/backup/backup.snar \
    --exclude=$HOME/backup \
    $HOME

И дифференциальные копии: разница лишь в том, что для этого необходимо для каждой резервной копии использовать только первый snapshot-файл.

В целом метод не требует особых знаний, легко поддаётся автоматизации и лёгок в управлении. Такие архивы можно зашифровать симметрично или асимметрично через GnuPG и отправить по внешним дискам и сетевым папкам.

-- 
Aleksei Savin                   mailto:lessavin@hotmail.com  
https://lessavin.ru             xmpp:lessavin@lessavin.ru  
Europe/Moscow (MSK, +0300)      matrix:u/lessavin:gnulinux.club