Автоматизация закачки Wget

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

bvlad
Сообщения: 260
ОС: Suse

Автоматизация закачки Wget

Сообщение bvlad »

Для загрузки файлов из интернета использую wget -i wgetlist. Для этого сначала, с помощью cron, запускаю kppp, например в 01.15, потом в 01.16 запускается скрипт в котором запускается wget ...&& kppp -k(для разрыва соедиения после закачки). Но возникает ситуация когда до повайдера не дозвониться. Kppp пытается дозваниваться раз, два, и тд. К этому времени уже запускается wget, соединения нет, он отваливается.
Как нужно написать скрипт чтобы wget запускался после подключения к провайдеру.
Спасибо сказали:
Аватара пользователя
yros
Сообщения: 245

Re: Автоматизация закачки Wget

Сообщение yros »

В кппп можно указать какую команду запускать после успешного соединения. Вот только она будет запускаться всегда после соединения.
Но это можно обойти десятком способов.
Скрипт? Сейчас нет времени, как появиться, попробую написать, если кто другой не напишет. Кстати pppd после успешного соединения никаких файлов не создаёт? Может по ним определить?
myLinux 3.1 | 2.6.17.6
Спасибо сказали:
Аватара пользователя
serg_sk
Бывший модератор
Сообщения: 2749
Статус: <3 Anime
ОС: Gentoo Linux <3

Re: Автоматизация закачки Wget

Сообщение serg_sk »

например парсить вывод ifconfig на наличие интерфейса ppp, если таковой есть для тесту сделать пинг, если пинг проходит запускаем закачку, если нет засыпаем минут на 5 и так по циклу )
Не ждали?! А я приперся!
Помойка Gentoo'шника
-------
Спасибо сказали:
bvlad
Сообщения: 260
ОС: Suse

Re: Автоматизация закачки Wget

Сообщение bvlad »

Да действительно в kppp есть команда для запуска и до и после соединения, и работает. Но, умышленно разорвал связь, kppp подождал начал переподключаться и повторно запускает скрипт. Теперь у меня два процесса wget с одним и тем же заданием. Это не порядок. Ночью может несколько раз рваться связь, это каша какая-то получится.
Спасибо сказали:
Аватара пользователя
yros
Сообщения: 245

Re: Автоматизация закачки Wget

Сообщение yros »

Если запускать через kppp то:

Код: Выделить всё

if [ 00 = `date +%H` ]; then wget -i wgetlist; fi
Можно добавить еще проверку на уже запущеные копии wget.

Такой скрипт получился, не проверял но должно работать:

Код: Выделить всё

#!/bin/sh
# повторять попытки пока на системных часах 00 часов:
while [ 00 = `date +%H` ]; do
# проверка на "наличие сети" и запуск закачки в случае успеха, выход после закачки:
ping -c 1 rambler.ru && wget -i wgetlist && exit
# задержка на 60 секунд перед повтором:
sleep 60
done
myLinux 3.1 | 2.6.17.6
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Автоматизация закачки Wget

Сообщение elide »

когда pppd дозванивается и успешно поднимает соединение, он запускает /etc/ppp/if-ip
а когда соединение рвется, он запускает /etc/ppp/if-down
слава роботам!
Спасибо сказали:
bvlad
Сообщения: 260
ОС: Suse

Re: Автоматизация закачки Wget

Сообщение bvlad »

Сделал так. Запуск скрипта настраиваю в crontab

#!/bin/sh
#Запускаем kppp с указанием провайдера и номера дисплея (при запуске через cron kppp требует номер дисплея
/opt/kde3/bin/kppp -cKons -display :0&
while true ; do
#Проверка удачно ли произошло соединение
ping -c 1 rambler.ru &&
wget -P ~/Download/ -T60 -ci wgetlist && /opt/kde3/bin/kppp -k -display :0 && exit
sleep 15
done
sudo /sbin/halt
Спасибо сказали: