LinuxForum.Fans
Тема

Прошу помощи в создании скрипта

Автор: vlad777 36 сообщений 5836 просмотров
#226506
vlad777 написал:
как это дело сделать так что бы при загрузке запускалось в терминале?

А зачем пинговать каждые 5 секунд? А то ещё на «гугле» забанят :D
В wvdial, если мне не изменяет память, есть опция, в которой можно указать путь к скрипту, запускаемому при создании ppp-интерфейса.
P.S. Вы скрипт именно в таком виде хотите запускать?

#226509

А зачем пинговать каждые 5 секунд?
что бы поддерживать соеденение

ввдиал пока не использую

P.S. Вы скрипт именно в таком виде хотите запускать?
если подскажите чего-то можно и по другому как нить запускать...

#226512
vlad777 написал:
что бы поддерживать соеденение

Какой тип соединения (ppp, adsl. eth,...) вы используете?

vlad777 написал:
ввдиал пока не использую

Это не принципиально: во многих дистрибутивах скрипты, запускаемые при поднятии ppp-интерфейса, можно разместить в /etc/ppp/ip-up.d/. Часто там есть и примеры подобных скриптов.

#226514

я использую ppp0 через usb модем

#226515
vlad777 написал:
P.S. Вы скрипт именно в таком виде хотите запускать?
если подскажите чего-то можно и по другому как нить запускать...

Я к тому, что скрипт в таком виде будет много «мусора» писать в консоль.
В конце строки с командой ping добавьте конструкцию > /dev/null 2>&1.

#226516

а как это прописать в /etc/ppp/ip-up.d/
и что реально могут забанить за такие частые пинги???

#226523
vlad777 написал:
а как это прописать в /etc/ppp/ip-up.d/

Попробуйте дать этому скрипту имя вида 50-ping-google.sh, сделать его исполняемым и поместить в каталог /etc/ppp/ip-up.d/.

vlad777 написал:
и что реально могут забанить за такие частые пинги???

Вряд ли, хотя кто их знает wink

#226525

нашел в инете

При каждом переподключении (автоматично передозванивается pppd) скрипт запускается заново. Но предыдущий тоже не вырубается. Так вот и вопрос - как при обрыве связи завершить процессы предыдущего скрипта?

я думаю для меня это тоже актуально

#226529

положил в папку скрипт-не работает

может куда то еще его прописать нужно?

#226532

vlad777, IMHO, всё это «костыль», но...
Приведите скрипт 50-google-ping.sh к такому виду:

text

#!/bin/bash
echo "$$" > /var/run/`basename $0`.pid
while :
do
    ping -c 3 -s 1 google.com > /dev/null 2>&1
    sleep 5
done

Создайте скрипт 50-google-ping-kill.sh такого вида

text

#!/bin/bash
kill `cat /var/run/50-google-ping.sh.pid` || kill -9 `cat /var/run/50-google-ping.sh.pid`
rm -f /var/run/50-google-ping.sh.pid

...сделайте его исполняемым и поместите в каталог /etc/ppp/ip-down.d/.

#226536

все сделал - не работает

#226537

Покажите

text

ls -l /etc/ppp/ip-up.d/
text

cat /etc/ppp/ip-up

P.S. При созданном соединении покажите

text

ps aux | grep ppp
#226538

vlad777, http://linuxforum.ru/viewtopic.php?pid=242026#p242026 << тут смотри
В крон ежеменутно + лог + всплывает notify :)

text
#!/bin/bash
PPP0='/proc/net/dev_snmp6/ppp0'
LOGF='/var/log/pppoe_log'

if [ ! -f $PPP0 ]; then echo "Обнаружен разрыв соединения ppp0 "`date '+%d-%B-%Y-%T'` >> $LOGF DISPLAY=:0.0 notify-send "Crontab" "Нет связи ppp0 переподключение" while [ ! -f $PPP0 ];do pppoe-start;done echo "Cоединение ppp0 заного установлено "`date '+%d-%B-%Y-%T'` >> $LOGF DISPLAY=:0.0 notify-send "Crontab" "Cоединение ppp0 заново установлено" fi

#226539

ls -l /etc/ppp/ip-up.d/
итого 12
-rwxr-xr-x 1 root root 891 2010-03-07 06:59 0000usepeerdns
-rwxr-xr-x 1 root root 4024 2009-02-20 20:56 0dns-up
-rwxrwxr-x 1 lon lon 116 2012-02-03 11:16 50-ping-google.sh

cat /etc/ppp/ip-up


# The environment is cleared before executing this script
# so the path must be reset
PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
export PATH

# These variables are for the use of the scripts run by run-parts
PPP_IFACE="$1"
PPP_TTY="$2"
PPP_SPEED="$3"
PPP_LOCAL="$4"
PPP_REMOTE="$5"
PPP_IPPARAM="$6"
export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM

# as an additional convenience, $PPP_TTYNAME is set to the tty name,
# stripped of /dev/ (if present) for easier matching.
PPP_TTYNAME=`/usr/bin/basename "$2"`
export PPP_TTYNAME

# If /var/log/ppp-ipupdown.log exists use it for logging.
if [ -e /var/log/ppp-ipupdown.log ]; then
exec > /var/log/ppp-ipupdown.log 2>&1
echo $0 $*
echo
fi

# This script can be used to override the .d files supplied by other packages.
if [ -x /etc/ppp/ip-up.local ]; then
exec /etc/ppp/ip-up.local "$*"
fi

run-parts /etc/ppp/ip-up.d \
--arg="$1" --arg="$2" --arg="$3" --arg="$4" --arg="$5" --arg="$6"

# if pon was called with the "quick" argument, stop pppd
if [ -e /var/run/ppp-quick ]; then
rm /var/run/ppp-quick
wait
kill $PPPD_PID
fi


ps aux | grep ppp

lon 1099 0.5 5.8 84460 28704 ? S 09:53 0:30 kppp
root 1138 0.0 0.3 41292 1928 ? Ss 09:53 0:00 kppp
root 5280 0.0 0.2 3100 1256 ttyUSB0 Ss+ 11:21 0:00 pppd 460800 -detach crtscts defaultroute user mts
lon 5801 0.0 0.1 3348 868 pts/0 S+ 11:33 0:00 grep --color=auto ppp

#226543
vlad777 написал:
-rwxrwxr-x 1 lon lon 116 2012-02-03 11:16 50-ping-google.sh
text

sudo chown root:root /etc/ppp/ip-up.d/50-ping-google.sh

А вообще-то вы же создаёте соединение с помощью kppp — в настройках соединения можно прописать пути к скриптам, выполняемым при подключении.

#226556

спасибо попробую

Войдите или зарегистрируйтесь, чтобы ответить.