Резервное копирование

Упаковка и шифрование содержимого корневой ФС

Наличие полной резервной копии всех файлов корневой ФС позволяет восстановить систему при различного рода “падениях”. Для восстановления достаточно будет загрузиться с LiveCD, распаковать бэкап, сделать в него chroot и дать команду на переустановку загрузчика (я предпочитаю lilo).

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

Итак, используем:

  • tar, gzip для создания архива,
  • gpg для его шифрования,
  • nice для того, чтобы эти операции не мешали одновременной с резервным копированием работе на компьютере.

Я исключаю каталог /home/, т.к. его резервное копирование у меня настроено отдельно. Остальные каталоги исключаю просто потому, что их содержимое в резервной копии не нужно.

#!/bin/bash
OUT_DIR=/путь/куда/положить/бэкап/
OUT_FILENAME=${OUT_DIR}`hostname`-root-`date +%Y-%m-%d@%H-%M`.tar.gz.gpg

echo "Packing root directory to $OUT_FILENAME..."
nice -+10 tar -cO / \
  --exclude=${OUT_DIR}* \
  --exclude=/home/* \
  --exclude=/media/* \
  --exclude=/mnt/* \
  --exclude=/proc/* \
  --exclude=/swap* \
  --exclude=/sys/* \
  --exclude=/tmp/* \
  --exclude=/var/cache/* \
  --exclude=/var/spool/squid/* \
  --exclude=/var/run/* \
  | nice -+10 gzip -c1 \
  | nice -+10 gpg -e -r "<имя на ключе>" -z 0 > $OUT_FILENAME

ls -lah $OUT_FILENAME

Ссылки


backup.txt · Last modified: 2012-07-06 08:53 UTC by rm