Bendalf |
|
Темы:
49
Сообщения:
505
Участник с: 14 мая 2019
|
Документация от авторов с примерами https://rsync.samba.org/documentation.html Проблема в том, что 1. на rsync archive.archlinux.org::archive пишет ошибку "доступ запрещён" Из всего последующего исследования сделал вывод, что серверная часть настроена криво. С другими rsync серверами такого нет. 2. rsync пытается найти каталог с именем хоста, хотя я такое не указывал в своих опциях. получаю сообщение что /home/user/папка/archive.archlinux.org/repos/ ..... не существует. я такое как rsync хочет сделать нигде не указывал. в man я такую опцию не видел, чтобы её вкл или выкл. {UPDATE} {UPDATE} Что Требуется нужно скачать содержимое папки файлы, обращая внимание на тхт файл с исключениями. чтобы папки в назначении были созданы до синхронизации самих файлов. я хочу простой короткий путь в домашней папке без имени сервера и папка в папке папки. ОПИСАНИЕ ситуации С яндексом синхронизация получается если папки home/user/mirror/{core,extra,community}/os/X86+64/ были созданы ранее руками и rsync качает прямо в них. с http://arch.jensgutermuth.de/ не получается. а с https://archive.archlinux.org/repos/папка/папка/папка в папке/ не получается. то ошибка с путями, то требует авторизацию и жалуется на ошибку конфигурации ssh. Мне этот ssh зачем ? если папка home/user/mirror пуста, то rsync пытается качать в /home/user/mirror/mirror.yandex.ru/папка/папка/папка в папке/ . оба *.Sh файла у меня различаются только источником и назначением. написаны одинаковой грамматикой и пунктуацией ВОТ ЧТО Я ДЕЛАЛ И КАК по ссылке все файлы которые и какие использую опции relative , mkdir добавлял --- толку ноль. ./mirror-exclude.txt лежит в папке со скриптом. а скрипт лежит в /home/user/ зеркалю в /home/user/mirror/{core,extra,multilib, community, pool}/os/X86+64/ , /home/user/mirror/pool , /home/user/mirror/pool/iso/дата/ по конкретной дате. Для удобства проверки я предоставил sh который создает нужные папки командой mkdir ман и гугло поиск не помогли. КАК ПОБЕДИТЬ ? пожалуйста прошу помочь увидеть где я накосячил или как сделать это всё иначе UPD 2020-12-30 возможно опция -r лишняя или это ошибка в rsync с этой опцией вот такая: так как если /a~-- это каталог, то cp -r /a /b скопирует /a в /b/a и /a/x в /b/a/x в случае, если /b уже существует, но эта же команда будет копировать /a в /b и /a/x to /b/x, если /b не существует, или же завершится с ошибкой, если /b~-- обычный файл). Вот у меня именно так и происходит. Я понял это посмотрев https://archlinux.org.ru/forum/topic/14140/ и man cp
С уважением, .
|
vasek |
|
Темы:
47
Сообщения:
11872
Участник с: 17 февраля 2013
|
Bendalfgoogl поможет - учись гуглить.
Ошибки не исчезают с опытом - они просто умнеют
|
wau |
|
Темы:
170
Сообщения:
1256
Участник с: 11 октября 2013
|
Боюсь, перевод не вполне корректный. В несоздании директориев на стороне назначения rsync ранее не замечен. А отсылка погуглить в обстоятельствах засранности сео-оптимизаторами любой поисковой выдачи увы, дедовский метод (выбешивает типа "в данной супер-статье с картинками, свистелками и рекламой, мы вам ... (100-1000000 строк) расскажем о команде ls). Относительно слэша так - предположу, что в редакции описанной строки он попытался все положить в /home/mirror/mirror.yandex.ru::archlinux, рекурсивно. Пути же, если они не прописаны от корня, он пробует от директория, в котором запущена команда. А в Вашей строке с точки зрения задания путей имеется разносортица - путь то полный, то от неуказанного места. Думаю, что если не задавать переменные, а записать полную строку и ее пробовать в консоли (да из разных мест), то успех настигнется быстрее. |
vasek |
|
Темы:
47
Сообщения:
11872
Участник с: 17 февраля 2013
|
wauНе согласен, просто нужен правильный запрос. Не поленился, загуглил - на 1-ой же странице 3 ссылки ..1... , ..2.. , ..3.. Команд много, но более подходящая для rsync, это или то же самое, но используя другой параметр
PS 1 - но, думаю, Bendalf как всегда не верно задал вопрос ... но что спросил только сами папки без файлов, то и получил ...
Ошибки не исчезают с опытом - они просто умнеют
|
Bendalf |
|
Темы:
49
Сообщения:
505
Участник с: 14 мая 2019
|
wauпроскакивало что нет такой папки /home/mirror/mirror.yandex.ru::archlinux я не понимаю откуда оно взялось, я то хотел в /home/mirror/ качать - это основное, почему я написал свой вопрос wauпожалуйста прошу обьясните нубу нужны не все папки, а с учетом исключений прописанных в отдельном тхт файле vasekу меня английский язык не родной. я спрашивал по русски. спасибо за подсказки
С уважением, .
|
wau |
|
Темы:
170
Сообщения:
1256
Участник с: 11 октября 2013
|
Наврное лучше не примере.
Это пример моего алиаса в .bashrc. Он берет на моей локальной машине все из /home/директорийДДД (нет слэша на конце, т.е. включая все-все, и скрытые файлы тоже) и идет на адрес_сервера_назначения, на котором в /путь/на_удаленном/сервере/ (слэш на конце) он создаст (при отсутствии) все необходимые директории. Т.е. в /путь/на_удаленном/сервере/ появится директорий директорийДДД, будет /путь/на_удаленном/сервере/директорийДДД/все_залитое. Заданные явно пути исключения будут анализироваться относительно директория источника, по первому вхождению (совпадению) слева направо, т.е. задан источник /home/директорийДДД и согласно инструкции --exclude='Загрузки/Телефон/TitaniumBackup' будет пропущен директрий /home/директорийДДД/Загрузки/Телефон/TitaniumBackup. Если задать только TitaniumBackup - исключение будет обработано неправильно. Исключение *.ldb = артефакт из начала 2000х, когда я еще использовал акссесс через вайн. |
vasek |
|
Темы:
47
Сообщения:
11872
Участник с: 17 февраля 2013
|
Уточнение в части слэш 1. Слэш на на target не действует (его наличие/отсутствие не влияет на результат) 2. Наличие/отсутствие конечного слэш в source изменяет уровень вложенности (на единицу) , точнее, - без слэша source будет скопирован полностью, включая и директорию с именем source - при наличии слэш будет скопировано только содержание директории source, то есть директории с именем source не будет. Как правило, при backup копирование идет один в один и слэши лучше не ставить, чтобы не путаться. PS - а вообще, для наглядности, лучше провести эксперимент
Ошибки не исчезают с опытом - они просто умнеют
|
Bendalf |
|
Темы:
49
Сообщения:
505
Участник с: 14 мая 2019
|
vasekСпасибо. Это скачивает все папки без файлов. Нужно исключить папки , которые не нужны добавив --exclude-from="blabla.txt" Я так сделал и rsync файл нашёл, но на содержимое не обратил внимания. к примеру в blabla.txt было - /archserver - /archserver/*/ - /iso/2020.0?.??/*.* - /iso/2020.0?.??/*/ - /iso/2020.0?.??/*/*/* Но лишние папки в назначении всё равно были созданы. а если убрать --exclude '*' , то rsync качает и файлы. очень любит кучу iso за последние пару лет. Что интересно, первые 14 строк из blabla.txt ок, удаляет лишние папки, а дальше никак, хотя они по образцу такие же
С уважением, .
|
vasek |
|
Темы:
47
Сообщения:
11872
Участник с: 17 февраля 2013
|
BendalfПредлагаю более понятный способ: подключить расширенные функции bash, используя которые исключим, например, все директории, начинающиеся на N или осваивай --exclude ….
Ошибки не исчезают с опытом - они просто умнеют
|
Bendalf |
|
Темы:
49
Сообщения:
505
Участник с: 14 мая 2019
|
vasekя попозжа выложу простыню rsync почему то складывает "$source" "$target" в одну строку и потом жалуется что такого пути "$target"+"$source" нет. это баг-фича или мой косяк ? я пробовал без переменных явным образом указывать - такая же ерунда получается. причем когда , то все норм пашет а через некоторое время, стоит только поменять сервер на https://archive.archlinux.org/repos/2020/08/04/ source=archive.archlinux.org:/repos/2020/08/04/ уже не работает. жалуется на "$target"+"$source" не существует. пробел есть. что нужно, не представляю. наличие кавычек возле "$target"+"$source" не влияет . хоть двойные хоть одинарные. если папки уже созданы всё робит четко. файлы синхронизируются с яндекса или http://mirror.pkgbuild.com/ wauпочему rsync соединяет $source" "$target" в один путь локальный и потом трындитт что такого пути нет ? наличие отсутствие кавычек вообще никак не влияет. если так src=mirror.yandex.ru::archlinux not="./mirror-exclude.txt" rsync -alvrzth --progress --delete --delete-after --delete-excluded --inplace --partial --exclude-from=$not $src/core/os/x86_64/ /home/oper/mirror/core/os/x86_64/ то папки приходится создавать руками. а если так src=[https//:]arch.jensgutermuth.de[тут что угодно] или src=arch.jensgutermuth.de[тут что угодно] либо не соединяет либо делает таргет с источником в один локальный путь и потом "такого пути нет"
С уважением, .
|