60 lines
2.4 KiB
Bash
Executable File
60 lines
2.4 KiB
Bash
Executable File
#!/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
|