LINUX.ORG.RU
ФорумAdmin

VPN (PPTP) по расписанию


0

0

Здрасьте.

Нужно подключать на машине VPN-соединение в определённое время - в 2:30. И отключать его в 10:00.

----

cat /etc/ppp/peers/tt_pptp
defaultroute
replacedefaultroute
require-mschap-v2
pty "pptp 85.158.48.1 --nolaunchpppd"
name 650458
remotename PPTP
file /etc/ppp/options.pptp
ipparam tt_pptp

----

Создал вот такой скрипт:

----

cat /etc/vpn_start
#!/bin/bash

LOG="/var/log/tt-pptp.log"
while true; do
   echo -e "\n===============\nStarting at `date`" >> $LOG
   pppd call tt_pptp >> $LOG
   sleep 10;
done

----

В crontab -e следующее вписал:

----

crontab -l
#m h  dom mon dow command
30 2 * * * /usr/bin/nohup /etc/vpn_start > /dev/null 2>&1 &
0 10 * * * /usr/bin/poff

----

Не работает. :-\

Подскажите, каким образом лучше сделать подключение и отключение в нужное время?

P.S.: Пускать по расписанию хочу для того, что использовать на сервере rtorrent, находящийся там в screen'e.

Ну во первых судя по конфигу, вывод подключения не будет у тебя идти на stdout и следовательно перенаправлять в файл будет нечего. Во вторых скрипт у тебя запускает подключение каждые 10 секунд!

SANTA_CLAUS ★★
()

while true заменить на while [ `date '+%k'` -lt 10 ]

при вызове pppd добавит опцию nodetach

nohup в crontab не нужен

В 10 утра запускать скрип (через crontab) примерно такого вида: while killall pppd ; do sleep 10 ; done

Поднять скилл баш-скриптинга :)

mky ★★★★★
()
Ответ на: комментарий от mky

mky, ты прав. Надо повышать уровень мастерства. :)


Пока остановился на таком:

----
cat /etc/vpn_start.sh
#!/bin/bash

PPPD="/usr/sbin/pppd"
LOG="/var/log/tt-pptp.log"
echo -e "\n===============\nStarting at `date`" >> $LOG
$PPPD call tt_pptp >> $LOG

----
cat /etc/vpn_stop.sh
#!/bin/bash

LOG="/var/log/tt-pptp.log"
echo -e "\n----\nNow will be killed pppd..." >> $LOG
killall pppd

----
crontab -l
#m h  dom mon dow command
15 2  * * * /etc/vpn_start.sh > /dev/null 2>&1 &
30 10 * * * /etc/vpn_stop.sh > /dev/null 2>&1 &

:) не трушно конечно. После этого при запуске из crontab'a (вручную конечно же работало) лог в писало:

----
sh: pptp: command not found
Couldn't get channel number: Input/output error

Но я в tt_pptp прописал полный путь до pptp. :) И запуск успешно стал проводиться.

Теперь надо будет проверку на разрыв связи реализовать. А sleep я вообще решил убрать.

Gular
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.