Download all assets from Nexus's repository using curl
Скрипт для автоматизации скачивания всех файлов из репозитория Nexus.
На скорую руку приготовил скрипт выкачивающий все файлы из какого-нибудь репо.
#!/bin/bash -e
NXRM="https://nexus.example.org:8081"
USERPASS="nx-pub-reader:Paqvl8oldO1EOarTcx8FAjuXZ"
REPO="cloudera-cm-6.3.1-hosted"
FILEEXT="rpm"
FILENAME="${REPO}.list"
TOKEN=""
get_token(){
TOKEN=""
TMPTOKEN=""
TMPTOKEN=$(tail ${FILENAME} | grep "continuationToken")
TOKEN="$(echo $TMPTOKEN | awk '{print $3}' | awk -F\" '{print $2}')"
if [[ "$TOKEN" = "" ]]; then return; fi
TOKENFULL="continuationToken=${TOKEN}&"
echo $TOKEN
}
> ${FILENAME}
while : ; do
curl -u${USERPASS} -X 'GET' \
"${NXRM}/service/rest/v1/assets?${TOKENFULL}repository=${REPO}" \
-H 'accept: application/json' >> ${FILENAME}
get_token
if [[ "$TOKEN" = "" ]]; then break; fi
done
grep -n "downloadUrl" ${REPO}.list | grep ${FILEEXT} | awk '{print $4}' | awk -F\" '{print $2}' > ${REPO}.urls
mkdir -p ${REPO}
cd ${REPO}
while read -r URL; do
curl -u${USERPASS} -LO -C - "${URL}"
done<../${REPO}.urls