Скрипт Bash для динамического поиска и построения URL и загрузки
Я хотел бы написать скрипт, который открывает URL (не полную ссылку URL) и находит последнюю доступную версию файла. Затем он поднимется на один уровень выше этого каталога, найдет какой-нибудь файл в этом каталоге и будет повторять этот процесс, пока не найдет загружаемый файл (вероятно, в цикле). Скрипт будет работать на безголовом компьютере.
Пример полной ссылки:
http://centos.bio.lmu.de/7/isos/x86_64/CentOS-7-x86_64-DVD-1511.iso
Неполная ссылка:
http://centos.bio.lmu.de/
Теперь скрипт должен найти последний каталог, который 7/
, зайдите в этот каталог и найдите /isos
и повторять, пока не дойдет CentOS-7-x86_64-DVD-1511.iso
,
Так как я новичок в программировании и Bash, любая помощь будет оценена.
1 ответ
Решение
Как насчет этого?
#! /bin/bash
re='^[0-9.]+$' #regex to match digits and dots
VERSION_1=$( # variable for the CentOS version
lynx --dump http://centos.bio.lmu.de/ |grep "/$" | \
while read i
do
TMP_VERSION=`echo $i |awk -F "/" '{print $(NF-1)}'`
if [[ $TMP_VERSION =~ $re ]] ; then
echo $TMP_VERSION
fi
done | sort -t . |tail -1)
VERSION_2=$( #Variable for the ISO name
lynx --dump http://centos.bio.lmu.de/$VERSION_1/isos/x86_64/ |grep DVD| grep "\.iso$" |awk -F "/" '{print $NF}'| \
while read i
do
echo $i
done |tail -1
)
wget http://centos.bio.lmu.de/$VERSION_1/isos/x86_64/$VERSION_2