Backup

В один поток:

sudo tar -cvpzf - --exclude=/mnt --exclude=/sys --exclude=/run --exclude=/dev --exclude=/proc --exclude=/media --exclude=/tmp --exclude=/var/log/lastlog --exclude=/home/local/RIMOS_NT_01/usikmi/Desktop/Shared --exclude=/home/local/RIMOS_NT_01/usikmi/Desktop/W  --exclude=/var/lib/libvirt/qemu/save/Win2008.save / | openssl enc -aes-192-cbc -pass pass:xxx -out /mnt/sdb1/backup_$(date +"%d.%m.%y_%H-%M").tar.gz.enc

В несколько потоков с помощью pigz:

sudo apt-get install pigz
sudo tar -cvpf - --use-compress-program=pigz --exclude=/mnt --exclude=/sys --exclude=/run --exclude=/dev --exclude=/proc --exclude=/media --exclude=/tmp --exclude=/var/log/lastlog --exclude=/home/local/RIMOS_NT_01/usikmi/Desktop --exclude=/var/lib/libvirt / | openssl enc -aes-192-cbc -pass pass:xxx -out /mnt/hdd/backup_$(date +"%d.%m.%y_%H-%M").tar.gz.enc

Backup по расписанию

Скрипт бекапит систему в заданную папку и следит за количеством файлов бекапа.

#!/bin/bash
backup_depth_days=14
backup_path='/mnt/hdd'
backup_prefix='backup_'

backup_files=`ls $backup_path/$backup_prefix* -t`
backup_files=(${backup_files// / })

if [[ ${#backup_files[@]} -gt $backup_depth_days ]]; then
        for ((i = $backup_depth_days; i < ${#backup_files[@]}; i++))
        {
            sudo rm -r -f ${backup_files[$i]}
        }
fi

sudo tar -cvpf $backup_path/$backup_prefix$(date +"%d.%m.%y_%H-%M").tar.gz --use-compress-program=pigz --exclude=/mnt --exclude=/sys --exclude=/run --exclude=/dev --exclude=/proc --exclude=/media --exclude=/tmp --exclude=/var/log/lastlog --exclude=/home/RDLEAS/usik.ma/Downloads /

Restore

Загружаемся с Live-CD.

При восстановлении на тот же раздел форматируем его с сохранением UUID (чтобы не переписывать /etc/fstab):

sudo mkfs.ext4 -L "label" -U "$(sudo blkid -o value -s UUID /dev/sdXy)" /dev/sdXy

Монтируем раздел:

mkdir /mnt/restore
mount /dev/sdXy /mnt/restore

Расшифровываем и распаковываем файлик бекапа:

openssl enc -in /mnt/sdb1/backup_.tar.gz.enc -d -aes-192-cbc -pass pass:1q2w3e4R1 | sudo tar --same-owner -xzvpf - -C /mnt/restore

На всякий случай (не обязательно) восстанавливаем grub:

sudo grub-install --root-directory=/mnt/restore /dev/sdX

Обязательно создаем снова папки, которые были исключены при копировании:

sudo mkdir /mnt/restore/{mnt,sys,run,dev,proc,media,tmp}
sudo touch /mnt/restore/var/log/lastlog

Даем права на /tmp (иначе не запустятся иксы):

sudo chmod -R a+rw /mnt/restore/tmp

Разбиваем диск fdisk'ом. Делаем загрузочный раздел активным. Форматируем и монтируем:

sudo mkfs.ext4 /dev/sdXy
mount /dev/sdXy /mnt/restore

Распаковываем файлик бекапа:

openssl enc -in /mnt/sdb1/backup_.tar.gz.enc -d -aes-192-cbc -pass pass:1q2w3e4R1 | sudo tar --same-owner -xzvpf - -C /mnt/restore

Обязательно создаем снова папки, которые были исключены при копировании:

sudo mkdir /mnt/restore/{mnt,sys,run,dev,proc,media,tmp}
sudo touch /var/log/lastlog

Даем права на /tmp (иначе не запустятся иксы):

sudo chmod -R a+rw /tmp

Обязательно восстанавливаем grub:

sudo grub-install --root-directory=/mnt/restore /dev/sdX

После установки grub нужно пересоздать файлик конфигурации /boot/grub/grub.cfg. Без этого шага при загрузке будет появляться сообщение типа:
Gave up waiting for root device.
ALERT: /dev/disk/by-uuid/… does not exist. Dropping to a shell!. Итак пересоздаем grub.cfg.

sudo mount --bind /dev /mnt/restore/dev
sudo mount --bind /proc /mnt/restore/proc
sudo mount --bind /sys  /mnt/restore/sys
sudo chroot /mnt/restore
sudo mv /boot/grub/grub.cfg /boot/grub/grub.cfg.old
sudo grub-mkconfig -o /boot/grub/grub.cfg
exit

И последний штрих - переписываем UUID разделов в /etc/fstab, вернее в /mnt/restore/etc/fstab. Узнать новые UUID разделов можно командой:

blkid /dev/sdXy

Все. Теперь можно перезагрузиться в восстановленную систему.

Надо смотреть на ошибки, но скорее всего, нет доступа на запись в папку /tmp выпоняем:

sudo chmod -R a+rw /tmp

При запуске KDE я столкнулся с проблемой запуска lightdm. При старте не появляется Login Screen где нужно выбрать пользователя и ввести пароль. Вместо него - черный экран. При попытке запустить lightdm он сообщает что:

Error getting user list from org.freedesktop.Accounts
Failed to execute program /usr/lib/dbus-1.0/dbus-daemon-launch-helper: Success

Тут помогла простая переустановка всех пакетов связанных с Lightdm. В моем случае так:

sudo apt-get install --reinstall liblightdm-gobject-1-0 liblightdm-qt-3-0 lightdm lightdm-kde-greeter

Кроме того, машинка была в домене и из домена вылетела. Вводим ее обратно с помощью PowerBroker (PBIS):

sudo /opt/pbis/bin/domainjoin-cli join domainName ADjoinAccountName

Error getting authority: Error initializing authority: Error calling StartServiceByName for org.freedesktop.PolicyKit1: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ExecFailed: Failed to execute program /usr/lib/dbus-1.0/dbus-daemon-launch-helper: Permission denied

chmod a+x /usr/lib/dbus-1.0/dbus-daemon-launch-helper
Enter your comment. Wiki syntax is allowed:
 
  • linux_faq/ubuntu_backup.txt
  • Last modified: 2020/01/12 19:06
  • by admin