grsync и rsync

Aivar
Еще раз: сохраняю список явно установленных пакетов и конфиги, скрипты и т.д. на внешнем носителе, в облаке, где угодно. Потом при необходимости (которой пока не было, но береженого Бог бережет) беру сохраненные файлы, после чего установка ВСЕЙ системы выполняется одной единственной командой:
# pacman -S `cat package_list`
То же касается AUR. Далее копирую забекапленные конфиги, скрипты и т.д.:
# rsync -aAXv config_bkp /
Все. Бекап всей системы не нужен, но если вы в себе не уверены - другое дело.

NARUTO522RU
Вся система полетит
С какого перепугу? А если сами сумели сломать, сумейте и исправить.

Aivar
Дело хозяйское. Кстати:
NARUTO522RU
я тетрадь с названиями пакетами не храню.
Я тоже. Часть скрипта, создающего бекап:
pacman -Qenq > $sync_dir/native.txt
pacman -Qemq > $sync_dir/foreign.txt
Короче, все автоматизировано, включая синхронизацию, архивирование, копирование в облако. Но вам это уже не интересно... )

Мне это очень интересно. Звучит круто, но насколько такой метод надёжен =/ с учетом того что как я понял вы этим способом ни разу не воспользовались...
И другой момент, нет ли тут каких то деталей о которых вы забыли рассказать?
Какие конфиги бэкапятся, содержимое /home, /etc..?
Werd
Я выполняю эту команду, и при этом у меня в /куда/бекапим/ копируется все... ну т.е. включая содержимое исключенных папок
...
Что я делаю не так?!
Очевидно не учитываете что в списке исключений указываются не абсолютные, а относительные (относительно источника) пути.
Прямой слеш (/) - в данном случае не корень файловой системы, а корневой каталог источника. Если слеш не указан, то шаблон может быть в любом месте источника.
man rsync в помощь.

Werd
А каким собственно должен быть список исключений, ну в случае арча и когда я хочу сделать именно бэкап системы, а не моих личных файлов или какого то левого мусора который не нужен для восстановления?
Когда-то делал так:
--exclude={"/dev/","/proc/","/sys/","/tmp/","/run/","/mnt/*","/media/*","/lost+found/","/swapfile","/var/cache/pacman/pkg/*","/var/tmp/*","/home/*/.thumbnails/*","/home/*/.cache/mozilla/*","/home/*/.local/share/Trash/*","/home/*/.gvfs/*"}
Заметьте, что возле некоторых каталогов отсутствует символ группового шаблона, т.е. они вообще не копируются за ненадобностью.

Werd
насколько такой метод надёжен
Надежен. В качестве эксперимента разворачивал систему на другом разделе. Там нечему ломаться, чем проще - тем надежнее.

Werd
нет ли тут каких то деталей о которых вы забыли рассказать?
Все может быть, от этого никто не застрахован.

Werd
Какие конфиги бэкапятся
Конкретно те, в которые Вы лично вносили изменения.
Aivar
Прямой слеш (/) - в данном случае не корень файловой системы, а корневой каталог источника. Если слеш не указан, то шаблон может быть в любом месте источника.
man rsync в помощь.

Что то я кажется перепробовал уже все комбинации с использованием слеша и ничего не выходит.
* Хочу я чтобы директория data не попала в бэкап, она находится в корне файловой системы.
* source: \
* destination: \backup
Как должна выглядеть команда?
$ sudo rsync -aAXv --exclude={"/data/"}  /   /backup 
Aivar
Werd
нет ли тут каких то деталей о которых вы забыли рассказать?
Все может быть, от этого никто не застрахован.

Я имел ввиду:

Короче, все автоматизировано, включая синхронизацию, архивирование, копирование в облако. Но вам это уже не интересно... )

Как автоматизировано? В какое облако и как копируется и т.д.? Как часто создаются бэкапы? Какой объем они занимают? Бэкапы же инкрементальные я правильно понял?
Werd
Хочу я чтобы директория data не попала в бэкап, она находится в корне файловой системы.
У вас получается бэкап в бэкапе, поскольку приемник находится в каталоге источника.
Кавычки можно опустить если в имени каталога нет пробелов.
Я от этой темы уже подустал малехо, поэтому простой пример:
$ mkdir -p source/dir{1,2,3} destination

$ rsync -aAXv --exclude=/dir1/ source/ destination/
sending incremental file list
dir2/
dir3/
...
$ rsync -aAXv --exclude={/dir2/,/dir3/} source/ destination/
sending incremental file list
dir1/
...
Есть вопросы? Нет вопросов. Если указанный в исключениях каталог копируется - это значит только одно: к нему указан неправильный путь. Где вы запутались в путях - ищите сами.

Werd
Как автоматизировано?
Скриптом.

Werd
В какое облако?
google drive

Werd
Как часто создаются бэкапы?
По мере добавления/изменения конфигов/скриптов и прочего, в т.ч. и списка установленных пакетов.

Werd
Какой объем они занимают?
$ du -h /media/gdrive/sync/confsync.tar.bz2
2,6M	/media/gdrive/sync/confsync.tar.bz2
Впрочем, почти весь размер - это wav-формы в ~/.local/share/sounds/. Еще, дабы не забыть, сохраняю один измененный растровый шрифт, драйвер сканера и измененную раскладку в tty.

Werd
Бэкапы же инкрементальные я правильно понял?
Бэкап файлов/каталогов обычный по rsync, конечный архив не инкрементный.

Я удовлетворил ваше любопытство?
Aivar
Есть вопросы? Нет вопросов. Если указанный в исключениях каталог копируется - это значит только одно: к нему указан неправильный путь. Где вы запутались в путях - ищите сами.

Да все еще есть вопросы. Ваш пример у меня работает, копирует то что нужно, все ок. Но например:

$ rsync -aAXv --dry-run --exclude '/data/' /  destination/

Папка data не копируется...

$ rsync -aAXv --dry-run --exclude={/data/} /  destination/

Папка data копируется. Вроде я не запутался в путях =/

Aivar
Я удовлетворил ваше любопытство?
Ну по большей части да ))

Но все равно есть еще вопросы:

Размер бэкапа 2,6 Mb? Так мало. Если не сжимать наверное будет чуть больше. А вы не рассматривали использование git'a.
Собираем все в папку бэкапа скриптом, коммитим, пушим. При восстановлении пул в папку бэкапа и дальше скриптами в обратную сторону копируем.
Так можно будет регулярно комитить по расписанию и иметь кучу версий системы, откатываться или ставить ту которая нужна в данный момент и все в одном репозитории..

И еще а как восстанавливаться? Покажите скрипт для восстановления?
Werd
А вы не рассматривали использование git'a
Не рассматривал, мне это не нужно.

Werd
Так можно будет регулярно комитить по расписанию и иметь кучу версий системы, откатываться или ставить ту которая нужна в данный момент и все в одном репозитории..
Еще раз: я не страдаю бэкапом всей системы, следовательно не собираюсь ее откатывать/восстанавливать. Считаю это занятие паранойей, вредной виндовой привычкой. Я сохраняю лишь то, к чему приложил руку, т.е. свой труд. И всё на единый случай - смерть винта, потому как по меркам НЖМД он у меня старожил: уж 10 годков ему.

Werd
И еще а как восстанавливаться? Покажите скрипт для восстановления?
Такового не имеется.
Предвидя вопрос: "Почему нет?"... Потому что не нужен:
  1. Распаковываем архив;
  2. Устанавливаем пакеты из файла native.txt (это одна команда);
  3. Собираем/устанавливаем пакеты из файла foreign.txt (тоже);
  4. Рекурсивно со всеми атрибутами копируем все каталоги из архива в корень системы.
Все даже проще чем при оф. установке. К тому же последние два пункта можно выполнять уже из установленной системы.

Werd
Папка data копируется. Вроде я не запутался в путях =/
Сделал исключение на весь корень кроме /etc/:
# rsync -aAXv --exclude={"/bin","/boot/","/dev/","/home/","/lib","/lib64","/lost+found/","/media/","/mnt/","/opt","/proc/","/root/","/run/","/sbin","/srv/","/sys/","/tmp/","/usr/","/var/"} / /tmp/dir/
Скопировался только /etc/. ЧЯДНТ? Вернее, что вы делаете не так я не знаю.
Aivar
Считаю это занятие паранойей, вредной виндовой привычкой.

Можно узнать почему? Ну т.е. вот например, я что то поделал с системой, перезагрузил и... не запускаются иксы. Если есть бэкап, я решу проблему очень быстро, если бэкапа нет =/ ну кто знает сколько времени уйдет на то чтобы починить иксы.. это к примеру. Я думаю что так не только у меня, а у кого угодно, даже у очень продвинутого пользователя, я ошибаюсь? =/
Werd
я ошибаюсь?
да, счас с постоянным доступом к репозиториям с алай, бэкап самой системы хотя бы с малейшем понятием уже бесполезен.
Конфигурации, данные это другой вопрос...
Ошибки в тексте-неповторимый стиль автора©
Werd
например, я что то поделал с системой, перезагрузил и... не запускаются иксы.
А без иксов совсем бяда?
Вернул назад то, что "проделал" с системой, тем более что виртуальная консоль доступна.
Не доступна из загруженной системы? Break на уровне gbub'а, примонтировал/чрутнулся исправил то, что накосячил.
Не удается? Из под любого Live CD/USB исправить "проделанное с системой".
Все равно не получается? Тогда не ломай, если не волокёшь исправить.

Werd
Если есть бэкап, я решу проблему очень быстро
Говорю же: виндовая привычка. Ради одной кривой строчки в каком-то конфиге восстанавливать гигабайты системы.

Werd
я ошибаюсь?
Именно.
 
Зарегистрироваться или войдите чтобы оставить сообщение.