2023-12-17 08:06:45 +03:00
|
|
|
|
#!/bin/bash
|
|
|
|
|
echo "Параллельное выполнение скриптов и создание репозиториев для каталогов проектов."
|
2023-12-17 08:20:25 +03:00
|
|
|
|
## --
|
|
|
|
|
# Для всех репозиториев, на одном уровне с текущим, формируем скрипт в одну строчку и
|
|
|
|
|
# выполняем эти скрипты в параллельном режиме. Скрипт в одну строчку — это выполнение
|
|
|
|
|
# заранее подготовленных других скриптов для локальных и удалённых репозиториев.
|
|
|
|
|
# Формируем скрипты несколько раз с разными параметрами и параллельностью: создание
|
|
|
|
|
# удалённых репозиториев — 5 потоков, все остальные действия без ограничений.
|
|
|
|
|
# --
|
|
|
|
|
cd .. # выходим из папки в корень репозитория
|
|
|
|
|
currentTimeMillis=$(date '+%s%3N')
|
|
|
|
|
# удаление репозиториев на сервере
|
2023-12-17 08:06:45 +03:00
|
|
|
|
find .. -mindepth 1 -maxdepth 1 -type d -printf \
|
2023-12-17 08:20:25 +03:00
|
|
|
|
'cd %h/%f && ./.repo_remote.sh "delete" >.repo_remote.log\0' | xargs -L1 -0 -P0 bash -c
|
|
|
|
|
# создание репозиториев на сервере для каталогов с сайтами
|
|
|
|
|
find .. -mindepth 1 -maxdepth 1 -type d -regex ".*[1-6]" -printf \
|
|
|
|
|
'cd %h/%f && ./.repo_remote.sh "create" >>.repo_remote.log\0' | xargs -L1 -0 -P5 bash -c
|
|
|
|
|
# создание репозиториев на сервере для остальных каталогов
|
|
|
|
|
find .. -mindepth 1 -maxdepth 1 -type d -regex ".*[^1-6]" -printf \
|
|
|
|
|
'cd %h/%f && ./.repo_remote.sh "create" >>.repo_remote.log\0' | xargs -L1 -0 -P5 bash -c
|
|
|
|
|
# создание локальных репозиториев и отправка данных на сервер,
|
|
|
|
|
# параллельно изменение настроек удалённых репозиториев
|
|
|
|
|
find .. -mindepth 1 -maxdepth 1 -type d -printf \
|
|
|
|
|
'cd %h/%f && ./.repo_local.sh >.repo_local.log\0
|
|
|
|
|
cd %h/%f && ./.repo_remote.sh "options" >>.repo_remote.log\0' | xargs -L1 -0 -P0 bash -c
|
|
|
|
|
echo "Общее время выполнения: $(("$(date '+%s%3N')" - "$currentTimeMillis")) мс."
|