Shell-script

Модератор: Модераторы разделов

Ответить
Esha
Сообщения: 10

Shell-script

Сообщение Esha »

Добрый вечер это опять Я) есть задание) 3. Построить карту локальной сети в нотации DOT (graphviz). Центральный узел — ваш.
Длинна дуг между узлами пропорциональна расстоянию до остальных узлов сети, определяемому по задержке ping.

Надо:
а) просканировать сеть и узнать, какие в ней есть хосты (например, командами ping -b или nmap),
б) выполнить пинг каждого и запомнить среднюю задержку пакетов,
в) сгенерировать файл на основе собранных данных.

#!/bin/bash
NMAP=$(nmap -sP 10.0.2.0-100) так я сканирую у меня получаеться 4 хоста 10.0.2.2 10.0.2.3 10.0.2.4 10.0.2.15
a=$(ping -c 4 -q 10.0.2.2)
b=$(ping -c 4 -q 10.0.2.3)
c=$(ping -c 4 -q 10.0.2.4)
my=$(ping -c 4 -q 10.0.2.15)

вот так я выполнил пинг, но это неправильно! как еще можно пропинговатьть?
Заранее спасибо!
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4823
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Shell-script

Сообщение SLEDopit »

Esha писал(а):
08.02.2016 22:00
вот так я выполнил пинг, но это неправильно! как еще можно пропинговатьть?
вам нужно автоматически в цикле получать хосты из nmap и пинговать их уже в цикле.
чтобы не нужно было руками жонглировать адресами. и результаты пинга обрабатывать скриптом, чтобы файл генерировался автоматически.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: Shell-script

Сообщение serzh-z »

Esha
Мне кажется, что вам куда-нибудь, сначала, сюда - http://mathhelpplanet.com/. А уж потом, с готовым алгоритмом, на технический-форум. =)
Спасибо сказали:
Esha
Сообщения: 10

Re: Shell-script

Сообщение Esha »

SLEDopit писал(а):
08.02.2016 23:36
Esha писал(а):
08.02.2016 22:00
вот так я выполнил пинг, но это неправильно! как еще можно пропинговатьть?
вам нужно автоматически в цикле получать хосты из nmap и пинговать их уже в цикле.
чтобы не нужно было руками жонглировать адресами. и результаты пинга обрабатывать скриптом, чтобы файл генерировался автоматически.


for i in $NMAP
do
ping=$i
так что ли в цикле? Я как понимаю команда пинг принимает в качестве параметра или айпи или имя хоста но не переменную
Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: Shell-script

Сообщение s.xbatob »

Написано же наверху:
Темы от студентов с запросами готовых решений по заданиям зарываются не глядя.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Shell-script

Сообщение Bizdelnick »

Esha писал(а):
09.02.2016 06:27
Я как понимаю команда пинг принимает в качестве параметра или айпи или имя хоста но не переменную

Ох...
Команда, конечно, не принимает переменную. Она о переменных вообще ничего не знает. Знает о них только bash, который и подставляет на их место то, что в этих переменных сохранено. А потом уже выполняет команду.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Esha
Сообщения: 10

Re: Shell-script

Сообщение Esha »

Bizdelnick писал(а):
09.02.2016 13:19
Esha писал(а):
09.02.2016 06:27
Я как понимаю команда пинг принимает в качестве параметра или айпи или имя хоста но не переменную

Ох...
Команда, конечно, не принимает переменную. Она о переменных вообще ничего не знает. Знает о них только bash, который и подставляет на их место то, что в этих переменных сохранено. А потом уже выполняет команду.


Код: Выделить всё

#/bin/bash
>rez
nmap -sP 10.59.2.40-44 > out
cat out | while read a
do
echo $a | grep -E -o "(25[0-5]|2[0-4][0-9]|`
`[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|`
`[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|`
`[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|`
`[01]?[0-9][0-9]?)" | tr -s '\n\r' ' ' >> rez
echo $a | grep -n latency | tr -d '[:alpha:]\ '|
cut -c 4-| grep -oP '.*(?=\))' >> rez
done


вот добил программу загвоздка в том что на дебиан на работе отработало хорошо,а дома на виртуальной машине не работает, дома стоит убунта 14.04
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4823
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Shell-script

Сообщение SLEDopit »

Esha писал(а):
21.02.2016 21:06
вот добил программу загвоздка в том что на дебиан на работе отработало хорошо,а дома на виртуальной машине не работает, дома стоит убунта 14.04
очевидно, что проблема здесь не в дебиане с убунтой, а в том, что адреса 10.59.2.40-44 из домашней сети не очень доступны.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Esha
Сообщения: 10

Re: Shell-script

Сообщение Esha »

SLEDopit писал(а):
23.02.2016 22:29
Esha писал(а):
21.02.2016 21:06
вот добил программу загвоздка в том что на дебиан на работе отработало хорошо,а дома на виртуальной машине не работает, дома стоит убунта 14.04
очевидно, что проблема здесь не в дебиане с убунтой, а в том, что адреса 10.59.2.40-44 из домашней сети не очень доступны.

Сейчас встала другая задача как это все запихать в graphviz мой комп переменная а и он перебирает строки rez. Кто с этим сталкивался помогите пожалуйста или ссылку на источни!
Спасибо сказали:
Аватара пользователя
nerve
Сообщения: 280
ОС: OpenBSD

Re: Shell-script

Сообщение nerve »

я не понимаю, в школах отменили русский язык как дисциплину?
КАК?
как можно быть программистом или администратором и при этом писать не пользуясь знаками препинания, вываливая поток мыслей.
Спасибо сказали:
Ответить