Бэкап всех своих репозиториев с GitHub
Паранойя не дремлет, поэтому всегда лучше иметь бэкап всех своих проектов, чтобы в случае какого-либо казуса ничего не потерялось. А лучше два бэкапа....

В качестве одного у меня есть свой сервер Gitea, на котором хранятся разные проекты или просто скрипты и заметки, он же выкачивает с GitHub в режиме зеркала те проекты, которые изначально хостятся там.

В качестве второго бэкапа рулят обычные архивы с данными где-нибудь на полочке. 

Для этого можно овспользоваться простым скриптом, который по API дернет список всех реп, а потом просто клонирует их в каталог.

Я его подцепил на каком-то форуме, и с тех пор довольно часто пользуюсь.

Создаем каталог, куда будем клонировать, и переходим в него:

Код:
mkdir my_projects
cd my_projects

А теперь запускаем скрипт:

Код:
curl -s "https://api.github.com/users//repos?per_page=100&page=1" | jq -r '.[] | select(.name ) | select(.fork == false).ssh_url' | xargs -L1 git clone --mirror

Единственный нюанс — он не сможет выкачать боле 100 реп, но я редко у кого столько видел.

Обновить репы можно так:

Код:
find . -maxdepth 1 -type d -exec sh -c '(cd {} && echo ">>> Pull repo \"$(basename "$(pwd)")\"" && git pull --all | grep -v "Fetching origin" | grep -v "Already up to date")' ';'

Можно добавить всю эту магию в crontab на домашнем сервере, чтобы, скажем, раз в сути в 12 ночи он делал бэкап. Можно добавить немного улучшайзеров: упаковывать в архивы по дате и так далее.
Ответ
Разве не нужно делать git clone --mirror?
It's time to kick gum and chew ass. And i'm all out of ass.
Ответ
Хорошее замечание, кстати, да. Он же так только мейнстрим сливает щас.

С одной стороны — да и пофиг? Все равно рано или поздно все ветки сливаются в мастера, так что даже если раз в сутки ты что-то потеряешь — пофиг. С другой, наверное, лучше делать полную копию репы со всем содержимым вообще.



Фиксану щас скрипт Smile
Ответ
GitLab тоже может выкачивать с GitHub в режиме зеркала проекты.

даже свой сервер иметь необязательно.
Ответ
(12.02.2023 08:Feb)Clockwork Написал: GitLab

Ну ты сравнил. Скрипт на баше и монстра, которому подавай 4 гига, 4 ядра и вот это вот все.
Ответ
Вот бы так иметь в бэкапе все сорцы, которыми пользуешься.

А то качать с Github-а репозитории у меня не вышло, Gitea жалуется на ошибки и не получается зеркала сделать.

Может, Gentooшные тарболлы зеркалить? Сколько они весят?

Или, вот слышал, у Red Hat вместе с диском с бинарниками раньше поставлялись и диски с исходным кодом.
Ответ
(13.03.2023 16:Mar)byashacat Написал: Или, вот слышал, у Red Hat вместе с диском с бинарниками раньше поставлялись и диски с исходным кодом.
Раньше в установочный образ любой BSD включались порты, а порты раньше включали в себя в том числе исходный код.

(13.03.2023 16:Mar)byashacat Написал: Может, Gentooшные тарболлы зеркалить? Сколько они весят?
Тарболлы там в основном качаются с зеркал, но на этих зеркалах они ничем не отличаются от апстрима. Все исходники всех доступных пакетов весят… много. Очень много.
Правила форума
[Новичкам] Как правильно задавать вопросы, чтобы Вам помогли

«Буду бить аккуратно, но сильно!» © Лёлик, х/ф «Бриллиантовая рука»
Ответ
(13.03.2023 16:Mar)byashacat Написал: Вот бы так иметь в бэкапе все сорцы, которыми пользуешься.

Имей, кто тебе мешает? Smile Или ты про вообще все пакеты в ОС?



(13.03.2023 16:Mar)byashacat Написал: Gitea жалуется на ошибки и не получается зеркала сделать

Какие? Там, возможно, надо просто ключ добавить ей. У меня без проблем все мои гитхабо-репы собираются.



(13.03.2023 16:Mar)byashacat Написал: Может, Gentooшные тарболлы зеркалить? Сколько они весят?

А там разве из одного места тянутся все исходники?



(13.03.2023 19:Mar)mord0d Написал: Все исходники всех доступных пакетов весят… много. Очень много.

Дохрена, я бы даже сказал Smile
Ответ
(14.03.2023 10:Mar)Zhbert Написал:
Цитата:Может, Gentooшные тарболлы зеркалить? Сколько они весят?
А там разве из одного места тянутся все исходники?
По умолчанию вроде с выбранного зеркала с фоллбэком на апстрим.
Правила форума
[Новичкам] Как правильно задавать вопросы, чтобы Вам помогли

«Буду бить аккуратно, но сильно!» © Лёлик, х/ф «Бриллиантовая рука»
Ответ
(14.03.2023 17:Mar)mord0d Написал: По умолчанию вроде с выбранного зеркала с фоллбэком на апстрим

Значит я чет попутал. Был уверен, что иногда оно тянет сорцы прямо с гитхаба или сорсфоржа.
Ответ
(15.03.2023 07:Mar)Zhbert Написал: Значит я чет попутал. Был уверен, что иногда оно тянет сорцы прямо с гитхаба или сорсфоржа.
Если это явно указано в ебилде. Лайвы, например, потому что оно из HEAD/trunk тянет, снапшоты которых, очевидно, на зеркала никто не сливает.
Правила форума
[Новичкам] Как правильно задавать вопросы, чтобы Вам помогли

«Буду бить аккуратно, но сильно!» © Лёлик, х/ф «Бриллиантовая рука»
Ответ
Цитата: Какие? Там, возможно, надо просто ключ добавить ей. У меня без проблем все мои гитхабо-репы собираются.
deadline context exceeded и все в таком духе, увеличивал таймауты - без толку

Цитата: А там разве из одного места тянутся все исходники?
В 2021 году ставил - да, из одного места. Из ж......

Цитата: Имей, кто тебе мешает? Smile Или ты про вообще все пакеты в ОС?
Все, что установлено в ОС с зависимостями + сервисы, что развернул в докере. Хочу иметь копии на случай непредвиденных ситуаций (отключение интернета, пришествие инопланетян).
Ответ
(16.03.2023 16:Mar)byashacat Написал: Все, что установлено в ОС с зависимостями + сервисы, что развернул в докере. Хочу иметь копии на случай непредвиденных ситуаций (отключение интернета, пришествие инопланетян).
В этом случае ничего обновляться у тебя не будет, а значит и пересобирать уже работающее не имеет смысла. В чём практическое применение твоей хотелки — не вполне ясно.
Правила форума
[Новичкам] Как правильно задавать вопросы, чтобы Вам помогли

«Буду бить аккуратно, но сильно!» © Лёлик, х/ф «Бриллиантовая рука»
Ответ
Угу, выглядит так, как будто достаточно просто образ системы снять.
Тем более, что раскатать его можно на любое железо без проблем (линуксы точно, насчет фряхи вашей хз).

Ну а вообще решить эту проблему можно с помощью Harbor или ему подобных — он тебе и докер закеширует, и пакеты дистра, и нпм и вообще все...
Ответ
(20.03.2023 07:Mar)Zhbert Написал: Тем более, что раскатать его можно на любое железо без проблем (линуксы точно, насчет фряхи вашей хз).
FreeBSD ставится точно так же, как Gentoo: разметил диск, распаковал базовую систему, бутстрапнул MBR и/или скопировал efi-файл на ESP. И переносится точно так же, как и почти любой UNIX-like (только BSD cp хардлинки дереференсит, потому лучше использовать tar). С ZFS перенос можно осуществить средствами самой ZFS, с UFS можно использовать dump/restore (это получится дольше чем банальный tar), дальше как обычно бутстрапаешь загрузчик и готово.

(20.03.2023 07:Mar)Zhbert Написал: с помощью Harbor
Если уже установленные пакеты, то достаточно просто не сносить кэш pkg (у меня на десктопе уже 33G кэша, пару раз даже пригодилось) или хотя бы копировать нужные версии куда-нибудь.
Правила форума
[Новичкам] Как правильно задавать вопросы, чтобы Вам помогли

«Буду бить аккуратно, но сильно!» © Лёлик, х/ф «Бриллиантовая рука»
Ответ
(23.03.2023 10:Mar)doesnm Написал: Разве Gitea не умеет с коробки в бекап репозиториев?

Чукча не читатель?
Ответ