Для загрузки файлов из интернета использую wget -i wgetlist. Для этого сначала, с помощью cron, запускаю kppp, например в 01.15, потом в 01.16 запускается скрипт в котором запускается wget ...&& kppp -k(для разрыва соедиения после закачки). Но возникает ситуация когда до повайдера не дозвониться. Kppp пытается дозваниваться раз, два, и тд. К этому времени уже запускается wget, соединения нет, он отваливается.
Как нужно написать скрипт чтобы wget запускался после подключения к провайдеру.
Автоматизация закачки Wget
Модератор: Bizdelnick
-
yros
- Сообщения: 245
Re: Автоматизация закачки Wget
В кппп можно указать какую команду запускать после успешного соединения. Вот только она будет запускаться всегда после соединения.
Но это можно обойти десятком способов.
Скрипт? Сейчас нет времени, как появиться, попробую написать, если кто другой не напишет. Кстати pppd после успешного соединения никаких файлов не создаёт? Может по ним определить?
Но это можно обойти десятком способов.
Скрипт? Сейчас нет времени, как появиться, попробую написать, если кто другой не напишет. Кстати pppd после успешного соединения никаких файлов не создаёт? Может по ним определить?
myLinux 3.1 | 2.6.17.6
-
serg_sk
- Бывший модератор
- Сообщения: 2749
- Статус: <3 Anime
- ОС: Gentoo Linux <3
Re: Автоматизация закачки Wget
например парсить вывод ifconfig на наличие интерфейса ppp, если таковой есть для тесту сделать пинг, если пинг проходит запускаем закачку, если нет засыпаем минут на 5 и так по циклу )
-
bvlad
- Сообщения: 260
- ОС: Suse
Re: Автоматизация закачки Wget
Да действительно в kppp есть команда для запуска и до и после соединения, и работает. Но, умышленно разорвал связь, kppp подождал начал переподключаться и повторно запускает скрипт. Теперь у меня два процесса wget с одним и тем же заданием. Это не порядок. Ночью может несколько раз рваться связь, это каша какая-то получится.
-
yros
- Сообщения: 245
Re: Автоматизация закачки Wget
Если запускать через kppp то:
Можно добавить еще проверку на уже запущеные копии wget.
Такой скрипт получился, не проверял но должно работать:
Код: Выделить всё
if [ 00 = `date +%H` ]; then wget -i wgetlist; fiТакой скрипт получился, не проверял но должно работать:
Код: Выделить всё
#!/bin/sh
# повторять попытки пока на системных часах 00 часов:
while [ 00 = `date +%H` ]; do
# проверка на "наличие сети" и запуск закачки в случае успеха, выход после закачки:
ping -c 1 rambler.ru && wget -i wgetlist && exit
# задержка на 60 секунд перед повтором:
sleep 60
donemyLinux 3.1 | 2.6.17.6
-
elide
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: Автоматизация закачки Wget
когда pppd дозванивается и успешно поднимает соединение, он запускает /etc/ppp/if-ip
а когда соединение рвется, он запускает /etc/ppp/if-down
а когда соединение рвется, он запускает /etc/ppp/if-down
слава роботам!
-
bvlad
- Сообщения: 260
- ОС: Suse
Re: Автоматизация закачки Wget
Сделал так. Запуск скрипта настраиваю в 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
#!/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