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 минуты.