1. Устанавливаем PPP

$ sudo apt-get install ppp

2. В каталоге /etc/ppp/peers создаем файл gprs_beeline со следующим содержимим

/dev/ttyS0
115200
noauth
defaultroute
usepeerdns
persist
noipdefault
lock
connect '/usr/sbin/chat -v -f /etc/chatscripts/gprs_beeline_script'
noipdefault
nodeflate
user "beeline"
maxfail 0
holdoff 1

3. В каталогt /etc/chatscripts создаем файл gprs_beeline_script

TIMEOUT 45
ABORT 'NO ANSWER'
ABORT 'BUSY'
ABORT 'NO CARRIER'
SAY 'Starting GPRS connection\n'
ABORT ERROR
"" 'ATZ'
"" 'ATE1'
OK AT+CGDCONT=1,"IP","internet.beeline.ru"
OK ATD*99***1#
CONNECT c

6. В принципе соединением уже можно пользоваться с помощью комманд "pon gprs_beeline", "poff gprs_beeline" но намного удобнее делать это через специальный скрипт. Переходим в директорию /etc/init.d и создаем скрипт "gprs" следующего содержания

#! /bin/sh
# GPRS start/stop/check/restart

PATH=/bin:/usr/bin:/sbin:/usr/sbin

CHECK_HOST=beeline.ru

LOGFILE=/var/log/gprs.log

log ()
{
DATE=`date +%Y.%m.%d_%H-%M-%S`
echo $1
echo [ $DATE ] - $1 >> $LOGFILE
}

touch $LOGFILE

case "$1" in
start)
log "Starting GPRS..."
if [ ` ps aux | grep pppd | grep -v grep | wc -l ` -gt 0 ] ; then
log "PPPD is already run 8) check it"
exit 0
fi

pon gprs_beeline
sleep 2
;;
stop)
log "Stopping GPRS..."

if [ ` ps aux | grep pppd | grep -v grep | wc -l ` -eq 0 ] ; then
log "PPPD not started :)"
exit 0
fi

poff gprs_beeline

sleep 2

if [ ` ps aux | grep pppd | grep -v grep | wc -l ` -gt 0 ] ; then
log "Kill pppd"
killall pppd
fi
;;
check)
log "Checking GPRS connection by pinging ${CHECK_HOST}..."
info=$(ping -qc3 -s1 -n $CHECK_HOST |grep packets| cut -d" " -f1,4)
set -- $info
if [ $1 != $2 ]; then
log "Try to ping end with failure!"
$0 restart
else
log "Ping OK"
fi
;;
restart|force-reload)
$0 stop
sleep 2
$0 start
;;
*)
log "Usage: /etc/init.d/gprs.sh {start|stop|restart|check}"
exit 1
esac

exit 0

Делаем его исполняемым:

$ sudo chmod +x /etc/init.d/gprs

7. Использование скрипта

Подключиться:
$ sudo /etc/init.d/gprs start
Отключиться:
$ sudo /etc/init.d/gprs stop
Переподключиться:
$ sudo /etc/init.d/gprs restart
Проверить связь и если ping'a нет - переподключиться
$ sudo /etc/init.d/gprs check

8. Для автоматической проверки связи, прописываем вызов скрипта в crontab

В файл /etc/crontab добавить строку
*/3 * * * * root sh -c /etc/init.d/gprs check

Связь будет проверяться каждые 3 минуты.

еще - http://www.comp-forum.ru/showthread.php?t=961


Comments powered by CComment