Помогите написать скрипт.
Использую deepStyle 3.0 для раздачи интэрнэта. настроил squid, havp, squidGuard. Интернет полечаю через ADSL модем. Сесия подымаетса через pppoe-start. Демон сам переконективаетса если обрыв связи, но бывает что он вилетает. Хочу создать скрипт который будет проверять подключено щас ppp0 или нет и если нет то будет исполнять команду pppoe-start. закину этот скрипт в cron и пускай выполняетса с интервалом в 5 мин. А также хочу чтоби виполнение скрипта записовало в файл инфу например так
Дата.Время pppoe-connect
Дата.Время pppoe-connect
Дата.Время pppoe-connect
Дата.Время pppoe-connect
#например обрыв и вылет pppoe, то что бы записало
Дата.Время pppoe-start
Дата.Время pppoe-connect
Дата.Время pppoe-connect
Дата.Время pppoe-connect
и т.д.
как это сделать.
Пока вот что придумал. Вообще то в shell-програмировании не силён. Так что не судите строго.
#!/bin/sh
if ifconfig | grep ppp0 ;
then echo 'pppoe-connect' > /tmp/check-ppp0.log;
elif /usr/sbin/pppoe start; echo 'pppoe start' > /tmp/check-ppp0.log;
fi;
Решено: Написать скрипт
Модератор: Модераторы разделов
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Решено: Написать скрипт
сколько-же можно этот скрипт писать?!
их уже миллионы!
-
romeo84
- Сообщения: 35
- ОС: slackware
Re: Решено: Написать скрипт
может не по теме но не подскажете как автоматизировать подключение к интернету через kppp что бы подключится нужно каждый раз вводить такое
eject /dev/sr0
modprobe usbserial vendor=0x19d2 product=0x0001
dmesg | grep -i ttyUSB
это всё из под root // можно ли сделать скрипт закинуть в авторазрузку пользователя что бы это всё постояно не вводить?
eject /dev/sr0
modprobe usbserial vendor=0x19d2 product=0x0001
dmesg | grep -i ttyUSB
это всё из под root // можно ли сделать скрипт закинуть в авторазрузку пользователя что бы это всё постояно не вводить?
-
kisil
- Сообщения: 204
- ОС: Slackware 13,37-14
Re: Решено: Написать скрипт
Даже не знаю что и сказать так как kppp в Слаке непользуюсь. Завтра на работе посмотрю и скажу
Вкинь эти команди в шел-скрипт сделай его исполняемым и попробуй запустить только в консоли , щоб увидить ошыбки если будут.
eject /dev/sr0
modprobe usbserial vendor=0x19d2 product=0x0001
dmesg | grep -i ttyUSB
Вкинь эти команди в шел-скрипт сделай его исполняемым и попробуй запустить только в консоли , щоб увидить ошыбки если будут.
eject /dev/sr0
modprobe usbserial vendor=0x19d2 product=0x0001
dmesg | grep -i ttyUSB
-
RocksLinux
- Сообщения: 223
- ОС: Slackware
Re: Решено: Написать скрипт
Приветствую!
Kisil, Вы конечно извините, но этих скриптов и так … Не говоря о том что pppoe-start, на сколько я помню, может сам проверять соединение (допустим постоянный до звон, хотя бы взять). Я бы помог, если бы я сейчас pppoe-start использовал, но по памяти не охото …
romeo84.
1.Вы случайно, не ныне столь полярный(е) usb-3G модемы используете? Если да - то вероятно, Вам будет удобней использовать usb modeswitch http://www.draisberghof.de/usb_modeswitch/#intro Хотя суть одна.
2.Прописать нужно в правилах udev. Т. е. Вид такой
Код: Выделить всё
Записываете все свои действия:
eject /dev/sr0
modprobe usbserial vendor=0x19d2 product=0x0001
dmesg | grep -i ttyUSBв скрипт, делаете его исполняемым и куда-нибудь запихиваете.
3.Теперь уже пишем правило:
назавём N.rules /
Код: Выделить всё
ACTION=="add" SUBSYSTEM=="usb", SYSFS{idProduct}=="****", SYSFS{idVendor}=="****", RUN+="sh /путь к Вашему скрипту/скрипт"значения idProduct и idVendor нужно взять у Вашего устройства (модема), например, Вы его только подключили — выполните от root'а lsusb, в ответ получите не-что вроде этого:
…
Bus 001 Device 006: ID 12d1:1732 бла-бла-бла (модель Вашего устройства)
…
Вот Вам SYSFS{idVendor}=="12d1" и SYSFS{idProduct}=="1732"
сохраним это правило в в /etc/udev/rules.d/
/etc/rc.d/rc.udev reload
«Знать, что мы знаем то, что мы знаем, и что мы не знаем того, чего мы не знаем — это и есть истинное знание». //Конфуций\\
120 минут классики рока
120 минут классики рока
-
kisil
- Сообщения: 204
- ОС: Slackware 13,37-14
Re: Решено: Написать скрипт
RocksLinux писал(а): ↑11.12.2009 09:37
Приветствую!
Kisil, Вы конечно извините, но этих скриптов и так … Не говоря о том что pppoe-start, на сколько я помню, может сам проверять соединение (допустим постоянный до звон, хотя бы взять). Я бы помог, если бы я сейчас pppoe-start использовал, но по памяти не охото …![]()
romeo84.
1.Вы случайно, не ныне столь полярный(е) usb-3G модемы используете? Если да - то вероятно, Вам, вероятно удобно, будет использовать usb modeswitch http://www.draisberghof.de/usb_modeswitch/#intro Хотя суть одна.
Нет использую ADSL модем. Кажысь уже розобрался помогли.
СПАСИБОЧКИ.
-
RocksLinux
- Сообщения: 223
- ОС: Slackware
Re: Решено: Написать скрипт
Эээ
Я насчёт устройства к romeo84 обращался. 
Кто помог?
Ну в любом случаи, удачи!
Кто помог?
«Знать, что мы знаем то, что мы знаем, и что мы не знаем того, чего мы не знаем — это и есть истинное знание». //Конфуций\\
120 минут классики рока
120 минут классики рока
-
kisil
- Сообщения: 204
- ОС: Slackware 13,37-14
Re: Решено: Написать скрипт
RocksLinux писал(а): ↑11.12.2009 10:12ЭээЯ насчёт устройства к romeo84 обращался.
Кто помог?Ну в любом случаи, удачи!
Да мну полазил еще по сайтам и форумам так и нашол решене
-
RocksLinux
- Сообщения: 223
- ОС: Slackware
Re: Решено: Написать скрипт
Превосходно и показательно! И вообще было бы идеально, ксли Вас не затруднит, выложить сюда решение.
Happy Slacking!
Happy Slacking!
«Знать, что мы знаем то, что мы знаем, и что мы не знаем того, чего мы не знаем — это и есть истинное знание». //Конфуций\\
120 минут классики рока
120 минут классики рока
-
kisil
- Сообщения: 204
- ОС: Slackware 13,37-14
Re: Решено: Написать скрипт
RocksLinux писал(а): ↑11.12.2009 11:54Превосходно и показательно! И вообще было бы идеально, ксли Вас не затруднит, выложить сюда решение.
Happy Slacking!
Вот этот скрипт
#!/bin/sh
if /sbin/ifconfig | grep -q ppp0; then
echo date '+%Y.%m.%d-%H:%M:%S pppoe-connect' >> /tmp/check-ppp0.log;
elif
/usr/sbin/pppoe-start;
echo date '+%Y.%m.%d-%H:%M:%S pppoe-start '>> /tmp/check-ppp0.log;
fi;
Спасибо сказали: