- комментарий 0:
From: kmeaw
Date: 2023-06-15 22:48:38Z
А почему не делалось зеркалирование из первоисточника в исходном
формате? Кажется, тогда не было бы проблемы с выкачиваниеем огромного
репозитория, а скачивание по частям получилось бы естественным образом.
Примерно так (сам не провеерял, пишу по памяти):
curl https://aur.archlinux.org/packages.gz | zcat |
xargs -I{} -P10 git clone https://aur.archlinux.org/{}.git
А ещё у aur.archlinux.org есть IPv6 (в отличие от github.com).
- комментарий 1:
From: Sergey Matveev
Date: 2023-06-15 23:19:47Z
*** kmeaw [2023-06-15 23:45]:
>А почему не делалось зеркалирование из первоисточника в исходном формате?
>curl https://aur.archlinux.org/packages.gz | zcat |
Потому что я нисколько не пользователь Arch-а и не в курсе как там у них
чего устроено и совершенно не хочется разбираться (не интересен этот
дистрибутив). Но знания о пакетах, где они (URL) и контрольные суммы
могут рано или поздно где-нибудь да пригодится, а также возможно
какие-то патчи. Зеркало AUR я просто мельком где-то увидел и решил вот
склонировать. Но да, предложенный вариант явно получше, спасибо!
- комментарий 2:
From: Sergey Matveev
Date: 2023-06-16 08:21:11Z
*** kmeaw [2023-06-15 23:45]:
>А почему не делалось зеркалирование из первоисточника в исходном формате?
Первоисточник через несколько десятков запросов выдаёт 429 HTTP код.
Вставил sleep 1 между git запросами -- тоже быстро отлупливает меня.
И это происходит не только на clone, но и на fetch.
- комментарий 3:
From: kmeaw
Date: 2023-06-17 08:23:35Z
Фрагмент из /etc/nginx/nginx.d/aurweb.conf:
# limit Git requests to block Git DoS attempts.
# # grep aurwebgitlimit /var/log/nginx/aur.archlinux.org/error.log | awk '{ print $14 }' | sort | uniq | sort
limit_req_zone $binary_remote_addr zone=aurwebgitlimit:10m rate=30r/m;
limit_req_status 429;
server {
…
location ~ "^/([a-z0-9][a-z0-9.+_-]*?)(\.git)?/(git-(receive|upload)-pack|HEAD|info/refs|objects/(info/(http-)?alternates|packs)|[0-9a-f]{2}/[0-9a-f]{38}|pack/pack-[0-9a-f]{40}\.(pack|idx))$" {
limit_req zone=aurwebgitlimit burst=300 nodelay;
…
uwsgi_pass smartgit;
…
}
}
Похоже, что git fetch делает много запросов, даже если с другой стороны
отвечают по smart protocol.
Если история не нужна, могу предложить ещё забирать snapshot, для них
(location ~ ^/cgit) настроен limit_req zone=aurwebgitlimit burst=900
nodelay:
https://aur.archlinux.org/cgit/aur.git/snapshot/clickhouse.tar.gz
Или можно попробовать скачать по SSH (что, правда, потребует регистрации
для загрузки публичного ключа):
git clone aur@aur.archlinux.org:clickhouse
- комментарий 4:
From: Sergey Matveev
Date: 2023-06-17 08:45:21Z
*** kmeaw [2023-06-17 09:20]:
>Похоже, что git fetch делает много запросов
А я ведь его даже через tofuproxy пускал, чтобы тут keep-alive TLS
соединение удерживал. Правда это усугублялось запуском под parallel,
который восемь процессов плодил.
>[...]могу предложить[...]
Спасибо большое! Но мне это прям вообще не горит, не критично всё и это
скорее просто проходя мимо я решил сделать копию на всякий пожарный,
авось пригодится.