Резервное копирование
Упаковка и шифрование содержимого корневой ФС
Наличие полной резервной копии всех файлов корневой ФС позволяет восстановить систему при различного рода “падениях”. Для восстановления достаточно будет загрузиться с 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