Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: rsync: помогите с параметрами исключения каталога  (Прочитано 2159 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ShuraX

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
      Просьба помочь с параметрами исключения при использовании rsync при сзадании бэкапов. Имеется домашняя директория
home_folder1 со структурой папок (просто пример, для упрощения понимания задачи):

           
 -home_folder1
    --Dates
        ---Dates
        ---music
    --1_Dates
    --Music
        ---Dates
        ---Music
        ---Pop
    --Manuals
    --etc


Задача: сделать резервную копию всей домашней папки home_folder1 за исключением вполне определенных папок, которые находятся в корне home_folder1 (н-р, здесь в примере это Dates) и их содержимого. Все остальные папки Dates в других папках соответственно должны синхронизироваться. Как правильно указать параметры фильтра в команде rsync?

Замечание:
- вариант с указанием всех путей, которые необходимо синхронизировать, в файле фильтра не подходят (т.к. содержимое папки home_folder1 может меняться часто и каждый раз править файл фильтра не представляется возможным)
- хотелось бы просто задать в качестве исключения конкретный путь/папку в фильтре.

Использую следующий синтаксис команды:
[/list][/list]# rsync -a -progress --exclude-from=/backupfilter.cnfg /home_folder1 /backup/home_folder1
Файл фильтра backupfilter.cnfg содержит:
- Dates/

При этом папки с названием Dates (где бы они не находились) естественно не синхронизируются (и это нормально, если учитывать, что алгоритм рекурсивный и исключается любой каталог с именем Dates).
Но как настроить фильтр исключений для моей задачи так и не понял.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Вот пример попроще:
$ mkdir -pv 0/{1,2,3}/{1,2,3}
mkdir: создан каталог «0»
mkdir: создан каталог «0/1»
mkdir: создан каталог «0/1/1»
mkdir: создан каталог «0/1/2»
mkdir: создан каталог «0/1/3»
mkdir: создан каталог «0/2»
mkdir: создан каталог «0/2/1»
mkdir: создан каталог «0/2/2»
mkdir: создан каталог «0/2/3»
mkdir: создан каталог «0/3»
mkdir: создан каталог «0/3/1»
mkdir: создан каталог «0/3/2»
mkdir: создан каталог «0/3/3»

$ rsync -nvar --exclude-from=<(echo -e "/1/\n/2/") 0/ 1/
sending incremental file list
created directory 1
./
3/
3/1/
3/2/
3/3/

sent 149 bytes  received 59 bytes  416.00 bytes/sec
total size is 0  speedup is 0.00 (DRY RUN)

Для rsync играют роль "завершающиё" слеши в конце имён каталогов.
А также "открывающие" слеши при перечислении исключений.

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Цитата: backupfilter.cnfg
- home_folder1/Dates/
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн ShuraX

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Большое спасибо, ArcFi и Azure, разобрался!

Для rsync играют роль "завершающиё" слеши в конце имён каталогов.
А также "открывающие" слеши при перечислении исключений.

Действительно запутался в слешах, хотя пробовал разные варианты до обращения на форум. Ваш простой пример натолкнул меня на другую мою ошибку (или особенность ОС) - с цифрами работало, а нормальными наименованиями нет.
Я работаю из под MacOS и при установке системы выставил вариант не различать регист букв при выборе файловой системы. При наборе команд все работает, однако, rsync все равно различает регист. :D

А комбинация Azure тоже рабочая с форматом моей команды (главное регистры поправить).  :)



 

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.