Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
linux_faq:ubuntu_backup [2019/02/11 09:13] – external edit 127.0.0.1linux_faq:ubuntu_backup [2020/01/12 19:06] (current) – [Backup] admin
Line 1: Line 1:
 +====== 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/ --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 по расписанию ======
 +===== /etc/cron.daily/backup =====
 +Скрипт бекапит систему в заданную папку и следит за количеством файлов бекапа.
 +<code>#!/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 /
 +</code>
 +
 +====== 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
 +==== lightdm ====
 +При запуске 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
 +
 +==== PBIS AD ====
 +Кроме того, машинка была в домене и из домена вылетела. Вводим ее обратно с помощью **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
 +