grsync и rsync

Ну ладно хоть пишу для размышления дали. С rsync хоть немного помогли. Лучше бы timeshift помогли починить т.к там проще бэкап делать. Может еще по проще альтернативу найду. С rsync не особо хочется делить ж\д.
NARUTO522RU
Ты же писал, чтобы сделать бэкап нужен второй hdd
Где??
GitHub, ArchWiki, AUR
Kycok
По сути полный бэкап системы, чтобы в случае чего тупо переподключить ЖД, поправить fstab и все дальше работает.
Собсна, по пути /BACKUP/ примонтирован второй винч, его исключаем при помощи --exclude, и циклическое копирование нам больше не грозит
Ну может не совсем правильно я понял.
NARUTO522RU, вы команде указываете два каталога: откуда и куда. А что там в этих каталогах находится rsync'y глубоко до фонаря.

RTFM! Это основной источник правильной информации
GitHub, ArchWiki, AUR
Kycok,ну так это я понял уже давно. В чем суть темы была, что когда резервируюсь возникает "циклическое копирование". И вот я спрашиваю у пользователей какая опция отвечает за исключение определенной директории, чтобы избежать "циклического копирования". Не знаю почему меня не поняли первый скриншот все наглядно демонстрирует.
(Скопировал из интернета с пояснениями и на русском)
Сам раньше пользовался, пока не надоело.

Для начала нужно подготовить место куда копировать, так как бэкап может быть достаточно объемным (в зависимости от вашей системы).
Я, например, монтирую в /mnt отдельный раздел на который будет осуществляться копирование.
Перехожу в папку /mnt, создаю в ней две папки: backup и out, перехожу в папку backup и выполняю такую команду:

rsync -axv /* . --delete --delete-excluded --exclude=/{dev/*,proc/*,sys/*,tmp/*,run/*,mnt/*,media/*,lost+found,var/lib/pacman/sync/*,var/cache/*,var/tmp/*,root/.bash_history,root/.thumbnails/*} --exclude=/home/*/.{thumbnails/*,mozilla/firefox/*.default/Cache/*,cache/chromium/*,bash_history,xsession-errors,local/share/recently-used.xbel}

В результате в этой папке появляется почти вся файловая структура вашей системы. Почти, потому что ключом --exclude мы исключили из копирования системные и временные папки и файлы (/dev, /proc, /sys, /tmp и т. д.). Вы можете отредактировать исключаемые файлы под свои нужды. Или хотя бы убедиться что эта команда в данном виде вам подходит.

• ключ -a - указывает что копирование файлов будет происходить рекурсивно в "архивном" режиме, который гарантирует сохранение символьных ссылок, файлов-устройств, атрибутов, разрешений и т.д.

• ключ -x - при копировании не выходить за пределы файловой системы.

• ключ -v - вывод подробной информации о копировании.

• ключ --delete - удаляет файлы, которые есть в принимающей папке, но которых нет в передающей папке.

• ключ --delete-excluded - в дополнение к файлам, удаляемым на приемной стороне из-за отсутствия их на передающей, удаляет также любые исключенные параметром --exclude файлы на приемной стороне.

### Завершение исключенных путей с помощью * гарантирует, что сами каталоги создаются, если они еще не существуют.

С помощью последних двух ключей из архива будут удаляться те файлы и папки, которые вы копировали ранее, но решили их больше не копировать. Полезно для поддержания актыульности вашего бэкапа.

Итак, на данном этапе у нас есть копия файловой системы на другом разделе. Теперь нужно заархивировать ее, чтобы уменьшить занимаемое место и представить наш бэкап одним файлом. Для последующего копирования его, например, на флешку.

Теперь вводим команду:

tar -caf "../out/my_backup.tar.gz" *

И через некоторое время получаем в папке /mnt/out архив с именем my_backup.tar.gz. Немного пояснений: ключи -cf - указывают tar создать архив с указанным именем. А ключ -a говорит тару автоматически определять по указанному расширению архива какой программой сжимать содержимое. В данном случае архив будет сжат программой gzip. * - означает что архивироваться будут все файлы, находящиеся в рабочей папке.

Поздравляю, теперь у вас есть архив вашей рабочей системы.

Теперь пару слов о том как восстановить систему из архива если она вдруг испортилась. Для этого загружаемся с любой линуксовой лайв-системы. Монтируем куда-нибудь (я приверженец /mnt) раздел со сломанной системой и раздел с бэкапом, переходим в папку, куда смонтирован раздел старой системы, удаляем все что там есть и выполняем следующую команду:

tar -xf <путь/до/бэкапа>

Ждете пока разархивируется. Затем с помощью chroot входите в новую систему, правите, если нужно /etc/fstab, /etc/mkinitcpio.conf, создаете initramfs-образы:

mkinitcpio -p linux

и обновляете меню загрузчика груб:
grub-mkconfog -o /boot/grub/grub.cfg

Выходите из chroot и перезагружаетесь уже в востановленную систему!

Может быть с первого прочтения все это выглядит очень сложным, но на самом деле нужно ввести всего лишь две команды для архивирования и три для восстановления. А если их объединить в скрипт, то вообще можно полностью все автоматизировать.

К слову сказать, мне за 5 лет использования арча пока еще не пришлось ни разу воспользоваться этим методом восстановления. Если и появляются какие-нибудь проблемы, они не настолько серьезные чтобы восстанавливать систему из бэкапа. Хотя само осознание наличия бэкапов придает уверенности.
serg66
мне за 5 лет использования арча пока еще не пришлось ни разу воспользоваться этим методом восстановления
Лучше пусть будет, но никогда не пригодится, чем не будет, когда понадобится :)
GitHub, ArchWiki, AUR
serg66, ага спасибо за расшифровку всего этого. Я пока буду сидеть на GUI потом, когда полностью освоюсь перейду на консольку.
Kycok, +. На андроиде тоже самое правило лучше бэкап сделать. Чем потом ныть ой прошивка полетела, imei слетел и т.п.
Откопал свой старый скрипт для бекапа корня. Допилил еще чуть-чуть.
#!/bin/bash

work_dir=`dirname "$(readlink -e "$0")"`
exclude_file="$work_dir"/backup.exclude
backup_dir="$1"
if ! [ -d "$backup_dir" ] ; then echo Каталог "$backup_dir" не существует ; exit ; fi
snapshot_dir="`date \+\%Y-\%m-\%d_\%R`"
mnt_dir=$(mktemp -d /tmp/root-XXXXXXXXX)

function clean_up {
  if mountpoint "$mnt_dir"/boot > /dev/null ; then
    umount "$mnt_dir"/boot
  fi
  umount "$mnt_dir"
  rmdir "$mnt_dir"
  exit
}

mkdir "$mnt_dir"
mount --bind / "$mnt_dir"
if mountpoint /boot > /dev/null ; then
  mount --bind /boot "$mnt_dir"/boot
fi

trap clean_up SIGHUP SIGINT SIGTERM

mkdir "$backup_dir"/"$snapshot_dir"

rsync -avHXE --delete --delete-excluded --exclude-from="$exclude_file" --progress --stats --numeric-ids --link-dest=$backup_dir/last "$mnt_dir"/ "$backup_dir"/"$snapshot_dir"/

ln -sfrn "$backup_dir"/"$snapshot_dir" "$backup_dir"/last

clean_up
Файл исключений. Положить в одну папку со скриптом.
Название backup.exclude
/tmp/*
/var/tmp/*
/var/lock/*
/var/log/*
/.config
/lost+found
/boot/lost+found
/var/cache/pacman/pkg/*
/home/*
Параметром принимает путь до каталога с бекапами.
Запуск по расписанию))))
Бекапы раскдываются по каталогам. При последующих бекапах копируются только новые\измененные файлы.
Удалять можно любой бекап кроме последнего.
Lupus pilum mutat, non mentem.
RusWolf,вот видео все понятно что и как помоги https://yadi.sk/i/2Yo6hlmM3JbvMd

P.S grsync я пока не разобрался будет время надо поковыряться.
 
Зарегистрироваться или войдите чтобы оставить сообщение.