Инструменты пользователя

Инструменты сайта


faq:linux:backup

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

Используя tar через ssh

С полными именами параметров:

rootbackup.sh
#!/bin/bash
BACKUPHOST=nkpc
BACKUPUSER=kasatkin
BACKUPFILE=/opt/pub/media/backup/`date +%Y-%m-%d-${HOSTNAME}`.tar.bz2
 
tar --create --bzip2 --preserve --file - --exclude="/proc/*" --exclude="/sys/*" \
--exclude="/tmp/*" / | ssh ${BACKUPUSER}@${BACKUPHOST} "cat > ${BACKUPFILE}"

Используя сокращённые параметры:

rootbackup.sh
#!/bin/bash
BACKUPHOST=nkpc
BACKUPUSER=kasatkin
BACKUPFILE=/opt/pub/media/backup/`date +%Y-%m-%d-${HOSTNAME}`.tar.bz2
 
tar -cjpsf - --exclude="/proc/*" --exclude="/sys/*" --exclude="/tmp/*" / | ssh \
${BACKUPUSER}@${BACKUPHOST} "cat > ${BACKUPFILE}"

Можно добавить в cron, например, как ежемесячное задание (не забыв сделать его исполняемым):

cp rootbackup.sh /etc/cron.monthly/
chmod a+x /etc/cron.monthly/rootbackup.sh

Используя rsync

Чтобы скопировать корневую файловую систему на новый раздел или в целях резервного копирования:1)

rsync -aAXHv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /mnt/backup

Сделать резервную копию на удалённый сервер можно просто заменив в этой команде /backup/ на host:/backup/.

Перенос системы на новый диск

Домашний каталог

cp -a /mnt/home/* /home/

Установленные пакеты

Сначала копируем базу ответов на вопросы dpkg: 2)

cp -a /mnt/var/cache/debconf /var/cache/

Затем копируем список репозиториев:

cp -a /mnt/etc/apt/sources.list /etc/apt/
cp -a /mnt/etc/apt/sources.list.d/* /etc/apt/sources.list.d/
apt-get update

После этого создадим список установленных пакетов в системе-доноре:

mount -o remount,rw /mnt
chroot /mnt
dpkg --get-selections > /packages.txt
exit
mount -o remount,ro /mnt

Наконец, устанавливаем все пакеты:

dpkg --set-selections < /mnt/packages.txt
apt-get dselect-upgrade
faq/linux/backup.txt · Последнее изменение: 2022-02-19 18:16 — 127.0.0.1