LINUX.ORG.RU

Часть инклюдов в rsync не работают

 


0

1

Скрипт

#!/bin/sh

alienbob_repo_url='rsync://bear.alienbase.nl/mirrors/people/alien/slackbuilds'
local_repo_path='/home/user/slackware/alienbob'

mkdir -p "$local_repo_path" || exit 1
pkg_arch="pkg64"
distro_ver="15.0"

# Not syncing - p7zip, cabextract, chromium-ungoogled. ???
rsync -ahv --delete --prune-empty-dirs --progress \
      --include="*/" \
      --include='CHECKSUMS.md5' \
      --include='CHECKSUMS.md5.asc' \
      --include="calibre/${pkg_arch}/${distro_ver}/*" \
      --include="cabextract/${pkg_arch}/${distro_ver}/*" \
      --include="chromium-ungoogled/${pkg_arch}/${distro_ver}/*" \
      --include="docker/${pkg_arch}/${distro_ver}/*" \
      --include="containerd/${pkg_arch}/${distro_ver}/*" \
      --include="ffmpeg/${pkg_arch}/${distro_ver}/*" \
      --include="jq/${pkg_arch}/${distro_ver}/*" \
      --include="libtorrent-rasterbar/${pkg_arch}/${distro_ver}/*" \
      --include="keepassxc/${pkg_arch}/${distro_ver}/*" \
      --include="pcsc-lite/${pkg_arch}/${distro_ver}/*" \
      --include="botan/${pkg_arch}/${distro_ver}/*" \
      --include="minizip/${pkg_arch}/${distro_ver}/*" \
      --include="qbittorrent/${pkg_arch}/${distro_ver}/*" \
      --include="nextcloud-client/${pkg_arch}/${distro_ver}/*" \
      --include="obs-studio/${pkg_arch}/${distro_ver}/*" \
      --include="p7zip/${pkg_arch}/${distro_ver}/*" \
      --include="openjdk11/${pkg_arch}/${distro_ver}/*" \
      --include="obs-studio/${pkg_arch}/${distro_ver}/*" \
      --include="runc/${pkg_arch}/${distro_ver}/*" \
      --include="x264/${pkg_arch}/${distro_ver}/*" \
      --include="x265/${pkg_arch}/${distro_ver}/*" \
      --include="wine/${pkg_arch}/${distro_ver}/*" \
      --exclude="*" \
      "${alienbob_repo_url}/" \
      "${local_repo_path}/" \
      && echo Update: OK

Синкает все, кроме p7zip, cabextract, chromium-ungoogled. Дошло до того, что я копировал из адресной строки пути. Ну не синкает эти директории и их содержимое и все тут. Где тут ошибка? Глаза замылились видимо.

Думал, пока пост пишу и объясняю, что не так, до меня снизойдет озарение, но что-то его пока нет…

Ответ на: комментарий от aol

Ни таких директорий, ни таких файлов нет.

$ ls
botan          CHECKSUMS.md5.asc  ffmpeg     libtorrent-rasterbar  obs-studio  qbittorrent  x264
calibre        containerd         jq         minizip               openjdk11   runc         x265
CHECKSUMS.md5  docker             keepassxc  nextcloud-client      pcsc-lite   wine
$ pwd
/home/user/slackware/alienbob

Я даже удалял полностю диру /home/user/slackware/alienbob и заново пытался синкать. Безуспешно.

Результат выполнения скрипта

receiving file list ...
2675 files to consider
./

sent 688 bytes  received 57,96K bytes  39,10K bytes/sec
total size is 653,56M  speedup is 11.143,84
Update: OK
Entmatix
() автор топика

Вся беда в слакваре.

А если серьезно, строка больно сложная.

для начала, я бы сделал вместо rsync echo и посмотрел, что там с этими переменными, во что они в итоге ресолвятся.

Ну и сама логика странно выглядит.

Как вариант, можно разделить строку на две, с проблемными инклудами и нормальную и рассматривать их поотдельности.

AVL2 ★★★★★
()

Гм. Запустил

rsync -ahv --dry-run --delete --prune-empty-dirs --progress \
      --log-file=s.log \
      --include="*/" \
      "${alienbob_repo_url}/" \
      "${local_repo_path}/" \
      && echo Update: OK
Что видим в логах про p7zip
2023/01/29 20:26:11 [24949] cd+++++++++ p7zip/
2023/01/29 20:26:11 [24949] cL+++++++++ p7zip/HEADER.txt -> README
2023/01/29 20:26:11 [24949] cd+++++++++ p7zip/build/
2023/01/29 20:26:11 [24949] cd+++++++++ p7zip/build/patches/
2023/01/29 20:26:11 [24949] cd+++++++++ p7zip/pkg/
2023/01/29 20:26:11 [24949] cL+++++++++ p7zip/pkg/15.0 -> 14.2
2023/01/29 20:26:11 [24949] cL+++++++++ p7zip/pkg/current -> 15.0
2023/01/29 20:26:11 [24949] cd+++++++++ p7zip/pkg/14.2/
2023/01/29 20:26:11 [24949] cd+++++++++ p7zip/pkg64/
2023/01/29 20:26:11 [24949] cL+++++++++ p7zip/pkg64/15.0 -> 14.2
2023/01/29 20:26:11 [24949] cL+++++++++ p7zip/pkg64/current -> 15.0
2023/01/29 20:26:11 [24949] cd+++++++++ p7zip/pkg64/14.2/
Вангую, что проблема в симлинках обработка которых в rsync должна быть указана явно.

Как это сделать в твоём случае - лень думать. В мане не менее 7 опций про симлинки.

vel ★★★★★
()
Ответ на: комментарий от AVL2

Хоть проблему и решили, но рад выслушать, почему логика странная. Вроде типичный набор для rsync, если не делать тоже самое файлофильтром.

Entmatix
() автор топика
Последнее исправление: Entmatix (всего исправлений: 1)
Ответ на: комментарий от firkax

Там нет проблем с пустыми каталогами.

Там проблема в том, что просят 15.0 который симлинк на 14.2, а 14.2 не просят. Создать симлинк на отсутствующий каталог rsync-y не позволяет религия. -L в данном случае корректное решение проблемы.

vel ★★★★★
()