Резервное копирование
Упаковка и шифрование содержимого корневой ФС
Наличие полной резервной копии всех файлов корневой ФС позволяет восстановить систему при различного рода “падениях”. Для восстановления достаточно будет загрузиться с 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
Ссылки
- Ещё один способ настройки резервного копирования - Easy Automated Snapshot-Style Backups with Rsync