Скрипт, който да пингва сървъри

Спам форум
Post Reply
User avatar
vinsbg
Гуру
Гуру
Posts: 2604
Joined: Wed Jan 28, 2009 12:21 pm
Answers: 51
Location: София
Contact:

Скрипт, който да пингва сървъри

Post by vinsbg » Tue Jul 29, 2014 7:23 am

Здравейте,

Знам, че има и линукс гурута тук :D, та ще ми трябва малко помощ.

Трябва да направя един скрипт, който на всеки 30мин да пингва сървър/и(gatawey) и ако е жив да получавам отговор, че е .. а ако не е жив съответно нищо няма да се получава.
Сървърите, които ще се проверяват са 7 на брой. Реално трябва да сървър 1 да пингне останалите 7 сървъра и да види дали са живи.
Скрипта ще е на bash
Моля, някой да помогне :?:

User avatar
alex95_bg_2
Шаман
Шаман
Posts: 5462
Joined: Thu Jul 24, 2008 8:25 am
Answers: 325
Location: localhost
Contact:

Post by alex95_bg_2 » Tue Jul 29, 2014 9:34 am

Code: Select all

#!/bin/bash

servers=( "192.168.1.8" "192.168.1.5" "192.168.2.1" )

for srv in "${servers[@]}"
do
  ping -c 1 $srv > /dev/null && echo $srv "raboti" || echo $srv "ne raboti"
done
Изход:

Code: Select all

alex@debian:~$ ./testping
192.168.1.8 raboti
192.168.1.5 raboti
192.168.2.1 ne raboti
Съответно действието ти зависи от върнатия код от ping и на мястото на echo-тата можеш да сложиш каквото ти трябва. Можеш да свалиш таймаута на пинг или да вдигнеш броя изпратени пакети ако мрежата е калпава.

Казал си bash - скрипта няма да работи под dash! (към което /bin/sh е symlink при дебиан и подобни)

30-те минути можеш да ги направиш през cron :)

User avatar
vinsbg
Гуру
Гуру
Posts: 2604
Joined: Wed Jan 28, 2009 12:21 pm
Answers: 51
Location: София
Contact:

Post by vinsbg » Tue Jul 29, 2014 9:43 am

edit//
В крайна сметка това е решението, което на локалната VM работи. Утре ще го пробвам на сървъра.

Code: Select all

#!/bin/bash

servers=( "1.1.1.1" "2.2.2.2" "3.3.3.3" "4.4.4.4" "5.5.5.5" "6.6.6.6" "7.7.7.7" )

for i in "${servers[@]}"; do
    ping -c 1 $i > /dev/null && /usr/bin/snmptrap -v 2c -c public ...	
done
Много ти благодаря!

Post Reply