9 февраля 2011 г.

Тренировка на кошках, или Bash-скрипт в пять строк

В этом скрипте нет ничего необычного или сложного, просто чтоб не забыть...
#!/bin/sh
nmap -sP 192.168.199.0/24>1.txt
cat 1.txt|grep 'Host'>2.txt
FILE="ip199"
cat 2.txt|grep -o '\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\)' > $FILE-`date +%d%m%Y%H%M`.txt
rm -r 1.txt 2.txt

А теперь кратенько так:


Назначение этого скрипта только одно: просканировать диапазон IP-адресов и скинуть в файл (имя файла, текущая дата и время, IP-ки машин, находящихся в on-line).
Для работы данного скрипта понадобится Nmap ("Network Mapper"), в Debian-е он есть.
:# aptitude install nmap

nmap -sP 192.168.199.0/24>1.txt - проверяем, кто в сети, и скидываем данные в файл 1.txt.
cat 1.txt|grep 'Host'>2.txt - выбираем строчки со словом Host, и снова в файл 2.txt.
FILE="ip199" - просто переменная, пригодится в конце скрипта(это начало имени файла, который будет сформирован, если существует несколько подсетей, чтоб не перепутать).
cat 2.txt|grep -o '\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\)' > $FILE-`date +%d%m%Y%H%M`.txt - ну собственно формирование окончательного файла, обратить внимание на кавычки `date +%d%m%Y%H%M`. Получаем имя файла типа ip199-150720101354.txt.
rm -r 1.txt 2.txt - ну и последняя строчка, которая удаляет временные файлы.
В этом скрипте нет ничего гениального, просто основные принципы работы с несколькими утилитами.
Исскуство написания Bash-скриптов

Комментариев нет :

Отправить комментарий