воскресенье, 21 июня 2015 г.

rsync начало...

Пытаюсь открыть для себя rsync для скачивания дерева дистрибутива...

Узнать с помощью rsync какие доступны дерева можно так:
rsync -n -vv ftp.slackware.com::
Узнать наличие и расположение директорий можно выбрав одно из дерев:
rsync -n -vv ftp.slackware.com::slackware
Скачать можно так:
rsync --stats --progress -z -vv  ftp.slackware.com::slackware/slackware64-current ~/slackware-current-x86_64
Если есть надобность исключить какие-то ветки из синхронизации, то можно добавить опцию --filter ': my-filter', где my-filter текстовый файл вида:
- source/
- pasture/source/
- testing/source/
+ */
где '-' не синхронизировать, '+'  - синхронизируя с удалённой директорий, скачивать еще недоступное на локальной. Символ косой черты тоже обязателен, если хотите чтобы rsync работал с вложенными директориями. Без двоеточия и пробела, --filter будет восприниматься прямыми правилами, вроде тех, которые процитированы выше. Но тогда опция --filter будет такой:
--filter='- source/' \ --filter '- pasture/source/' \ --filter '- testing/source/'
Пробел между знаком - и именем маски игнорируемого имени, - обязателен; допустимы и символы уточняющие условия поиска: *,?,! . А сами правила ОБЯЗАТЕЛЬНО должны быть взяты в одинарные кавычки. И ВАЖНЕЙШЕЕ ПРАВИЛО: ОДИН --filter - ОДНО ПРАВИЛО. Мне это было трудно усвоить :)

Можно использовать опцию --example и --example-file для установки только разрешённых веток дерева.

В целом команда, к примеру, скачивания дистрибутива Slackware-current будет такой:
rsync -Pavv rsync://mirror.yandex.ru/slackware/slackware64-current/ --filter='- source/' --filter '- pasture/source/' --filter '- testing/source/' ./slack/'
Ссылки:
Правила опции filter для rsync (англ)
https://forums.gentoo.org/viewtopic-t-703508-start-0.html

Ярлыки:

Комментарии: 0:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.

Подпишитесь на каналы Комментарии к сообщению [Atom]

<< Главная страница