dev/bash/scripts/allget.sh

60 lines
2.4 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Автоматический загрузчик из командной строки с возможностью добавления файлов в список
# и переносом в конец неудачных закачек.
# Переменная $list определяет файл со списком закачек (простые ссылки)
# Переменная $downdir определяет директорию загрузки
# Автор: Шашкин Николай г.Пенза
list="$1"
if [[ "$list" == "" ]]; then
list=~/etc/wget_list.txt ;
fi
if [ ! -e "$list" ]; then
echo "Не найден файл $list со списком загрузок - выходим !"
exit 1
fi
downdir="$2"
if [[ "$downdir" == "" ]]; then
downdir=/home/kolan/download ;
fi
if [ ! -d $downdir ]; then rm -f $downdir; mkdir $downdir; fi ;
while true; do
unset fname
if [[ `wc $list | cut -d ' ' -f2` == 0 ]]; then exit 0; fi; # Список загрузок пуст
{
while [[ "$fname" == "" ]]; do
read fname ; # Считываем первое имя в списке загрузок
done
}<$list ;
echo "#############################################################################################"
echo "Downloading $fname"
#cd "$downdir"; lftp -c pget -n 10 "$fname" # бред, докачка не работает
#cd "$downdir"; lftpget -c "$fname" # бред, докачка не работает
#aria2c -d "$downdir" -j 10 -s 10 -c "$fname" # нормальная тулза
wget --mirror -c -l5 --no-directories --timeout=30 --tries=3 --directory-prefix="$downdir" "$fname"
#cd "$downdir"; axel -n 13 --search=4 -N -a "$fname" # нормальная тулза
result="$?"
if [[ "$result" != "0" ]]; then sleep 2; fi # Ожидаем 2 секунды, дабы избежать черезчур частых попыток и, вследствие чего, повышенной загрузки ЦП
buf=`tail -n +2 $list | grep -v '$fname'` # Вырезаем имя текущей загрузки из списка
echo "$buf" > $list
if [[ "$result" == "0" ]]; then
echo "$fname" >> "${list}-ready.txt"
echo "Загрузка успешно завершена!"
else
echo "$fname" >> $list
echo "Загрузка не удалась - переносим её в конец списка."
fi
done