Автор Гілка: Скрипт  (Прочитано 2314 раз)

Відсутній kisil

  • Графоман
  • ****
  • дописів: 353
  • Карма: +0/-0
  • Toruble in Windows reboot, toruble in Unix be root
    • About me
Скрипт
« : 2009-12-10 22:54:46 »
Допоможіть мені написати скрипта. :-/
Є сервер який роздає інтернет з налаштованими на ньому сквідом, хавпом, сквідГуардом. Інтернет ADSL, на сервері піднімається ppp сесія. На сервері проінстальовані пакунки ppp i rp-pppoe. конект піднімається командою pppoe start. Сам демон pppoe переконекчується при обриві звязку, але бувають ситуації коли вінпросто відвалюється. Тому хочу написати скрипта, який би перевіряв чи наявний мережевий інтерфейс ppp0, якщо є то писавби інфу в файл pppoe-connect, а якщо нема то писавби  -  pppoe-start. Тобто, щоб вівся маленький лог з реєстрацієб часу. Помістити файл в cron і встановити виконання з інтервалом в 5 хв.
Дистрибутив DeepStyle 3.0
Хочу щоб він пмсав лог приблизно такий:
Дата.Час pppoe-connect
Дата.Час pppoe-connect
Дата.Час pppoe start
Дата.Час pppoe-connect
Дата.Час pppoe-connect

В шел програмуванні я не сильний тому прошу допомоги, а те що я придумав ось:

#!/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;


Але всеодно скрипт не так працює як хочеться.
 8-)

Відсутній Sidius

  • Кореспондент
  • ***
  • дописів: 159
  • Карма: +0/-0
  • Pew Pew
Re: Скрипт
« Відповідей #1 : 2009-12-10 23:08:14 »
Для того, щоб записувався в лог час, потрібно зробити так:
#!/bin/sh

if /sbin/ifconfig | grep ppp0; then
    echo `date` 'pppoe-connect' >> /tmp/check-ppp0.log;
else
    /usr/sbin/pppoe start;
    echo `date` 'pppoe start' >> /tmp/check-ppp0.log;
fi
В такому випадку в лог буде писатись щось таке:
Thu Dec 10 23:01:51 EET 2009 pppoe-connect
Зверніть увагу на лапки, в які я взяв date. Вони повинні бути саме такими, щоб виконалась команда всередині них.
Також важливими є напрям виводу результату виконання команди. Якщо напишете >, то воно щоразу буде перезаписувати файл. Для запису в кінець файлу треба ставити >>.
« Змінено: 2009-12-10 23:19:49 від Sidius »

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Скрипт
« Відповідей #2 : 2009-12-10 23:19:42 »
Гм. У мну укртелекомівський адсл, піднятий гейт (модем в режимі моста), pppoe ще ні разу не вивалювався (на ppp виставлено безкінечну кількість спроб коннекту).
Стосовно скрипта:
1) grep -q
2) grep &>/dev/null
3) date '+%Y.%m.%d-%H:%M:%S pppoe-start'
4) >> /tmp/...

Відсутній kisil

  • Графоман
  • ****
  • дописів: 353
  • Карма: +0/-0
  • Toruble in Windows reboot, toruble in Unix be root
    • About me
Re: Скрипт
« Відповідей #3 : 2009-12-11 00:22:11 »
Для того, щоб записувався в лог час, потрібно зробити так:
#!/bin/sh

if /sbin/ifconfig | grep ppp0; then
    echo `date` 'pppoe-connect' >> /tmp/check-ppp0.log;
else
    /usr/sbin/pppoe start;
    echo `date` 'pppoe start' >> /tmp/check-ppp0.log;
fi
В такому випадку в лог буде писатись щось таке:
Thu Dec 10 23:01:51 EET 2009 pppoe-connect
Зверніть увагу на лапки, в які я взяв date. Вони повинні бути саме такими, щоб виконалась команда всередині них.
Також важливими є напрям виводу результату виконання команди. Якщо напишете >, то воно щоразу буде перезаписувати файл. Для запису в кінець файлу треба ставити >>.

Дякую завтра спробую і відпишуся



Гм. У мну укртелекомівський адсл, піднятий гейт (модем в режимі моста), pppoe ще ні разу не вивалювався (на ppp виставлено безкінечну кількість спроб коннекту).
Стосовно скрипта:
1) grep -q
2) grep &>/dev/null
3) date '+%Y.%m.%d-%H:%M:%S pppoe-start'
4) >> /tmp/...


Так в мене також Укртелекомовський інтернет і модем налаштований бріджом, але чомусь демон pppoe час від часу відвалюється. Так як зараз пишу з дому то syslog з помилкою pppoe не під рукою. Зранку прийду на роботу і напишу помилку яку видає демон може щось порадите. Доречі раніше стояла просто Слака 12.0 і все було нормально, поставив DeepStyle 3.0 і почалися ці проблеми, я десь читав, що це проблеми нових версій пакетів ppp i rp-pppoe на Слаці 12.0 вони були старіші і стабільніші. Чи доцільно знести рідні DeepStyle-ві пакети і поставити пакети із Слаки 12.0.

Дякую :)  :P
« Змінено: 2009-12-11 00:30:18 від kisil »

Відсутній kisil

  • Графоман
  • ****
  • дописів: 353
  • Карма: +0/-0
  • Toruble in Windows reboot, toruble in Unix be root
    • About me
Re: Скрипт
« Відповідей #4 : 2009-12-11 08:28:41 »
Гм. У мну укртелекомівський адсл, піднятий гейт (модем в режимі моста), pppoe ще ні разу не вивалювався (на ppp виставлено безкінечну кількість спроб коннекту).
Стосовно скрипта:
1) grep -q
2) grep &>/dev/null
3) date '+%Y.%m.%d-%H:%M:%S pppoe-start'
4) >> /tmp/...

Зараз уже на роботі, ось що пише мені pppoe це було вчора

Dec 10 13:35:25 rm-proxy pppd[2968]: No response to 3 echo-requests
Dec 10 13:35:25 rm-proxy pppd[2968]: Serial link appears to be disconnected.
Dec 10 13:35:25 rm-proxy pppd[2968]: Connect time 1390.0 minutes.
Dec 10 13:35:25 rm-proxy pppd[2968]: Sent 1030884618 bytes, received 3380179213 bytes.
Dec 10 13:35:31 rm-proxy pppd[2968]: Connection terminated.
Dec 10 13:35:31 rm-proxy pppd[2968]: Modem hangup
Dec 10 13:35:31 rm-proxy pppoe[2969]: Sent PADT
Dec 10 13:35:31 rm-proxy pppd[2968]: Exit.
Dec 10 13:59:08 rm-proxy pppd[15705]: pppd 2.4.4 started by root, uid 0
Dec 10 13:59:08 rm-proxy pppd[15705]: Using interface ppp0
Dec 10 13:59:08 rm-proxy pppd[15705]: Connect: ppp0 <--> /dev/pts/0
Dec 10 13:59:13 rm-proxy pppoe[15706]: PPP session is 6408 (0x1908)
Dec 10 13:59:14 rm-proxy pppd[15705]: PAP authentication succeeded
Dec 10 13:59:14 rm-proxy pppd[15705]: local  IP address 95.132.21.246
Dec 10 13:59:14 rm-proxy pppd[15705]: remote IP address 195.5.5.184
Dec 10 13:59:14 rm-proxy pppd[15705]: primary   DNS address 213.179.249.131
Dec 10 13:59:14 rm-proxy pppd[15705]: secondary DNS address 213.179.249.132

А ось це в минулу суботу:
Dec  5 12:28:49 rm-proxy pppd[2961]: LCP terminated by peer
Dec  5 12:28:49 rm-proxy pppd[2961]: Connect time 1439.1 minutes.
Dec  5 12:28:49 rm-proxy pppd[2961]: Sent 917018766 bytes, received 1548742573 bytes.
Dec  5 12:28:49 rm-proxy pppoe[2962]: Session 12050 terminated -- received PADT from peer
Dec  5 12:28:49 rm-proxy pppoe[2962]: Sent PADT
Dec  5 12:28:49 rm-proxy pppd[2961]: Modem hangup
Dec  5 12:28:49 rm-proxy pppd[2961]: Connection terminated.
Dec  5 12:28:50 rm-proxy pppd[2961]: Exit.

Як і в якому файлі ви виставляли бескінечну кількість спроб конекту для ppp.
Дякую

Відсутній kisil

  • Графоман
  • ****
  • дописів: 353
  • Карма: +0/-0
  • Toruble in Windows reboot, toruble in Unix be root
    • About me
Re: Скрипт
« Відповідей #5 : 2009-12-11 08:38:16 »
Sidius Спасибі спробував скрипт працює.

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Скрипт
« Відповідей #6 : 2009-12-11 10:07:16 »
У /etc/ppp/peers/<ваш конфіг-файл>
maxfail 0

Відсутній kisil

  • Графоман
  • ****
  • дописів: 353
  • Карма: +0/-0
  • Toruble in Windows reboot, toruble in Unix be root
    • About me
Re: Скрипт
« Відповідей #7 : 2009-12-11 13:19:47 »
У /etc/ppp/peers/<ваш конфіг-файл>
maxfail 0
напевне при встановленні rp-pppoe така директорія не створюється в мене її немає. В мене сесію піднімає pppoe а він має власний конфіг

Відсутній oleksa

  • Кореспондент
  • ***
  • дописів: 214
  • Карма: +0/-0
Re: Скрипт
« Відповідей #8 : 2009-12-13 20:54:32 »
Зустрічне питання. Маю підняти vpn на сервері, кожного разу, як під’єднується клієнт, створюється з’єднання ppp0, ppp1 ... pppn. Зараз для кожного такого pppn-інтерфейсу прописано в iptables правило. Чи є можливість автоматизувати, прописуючи правило для групи?

Відсутній PAL

  • Графоман
  • ****
  • дописів: 317
  • Карма: +0/-0
  • Just linux admin
Re: Скрипт
« Відповідей #9 : 2009-12-16 22:57:41 »
Пробачте, панове, а хоч хтось man pppd пробував читати?

ДУЖЕ рекомендую. Особливо в частинах:

/etc/ppp/auth-up|down
/etc/ppp/ip-up|down


Читати мани - воно дюже пользітельно! Способсвуєт, так би мовити.