Разработка динамических сайтов
SEO услуги
Управление контекстной рекламой

Вход на хостинг

Имя пользователя:*

Пароль пользователя:*

IT-новости

20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла

Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......

подробнее

30.07.2015 Ищем уникальный контент для сайта

Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......

подробнее

11.05.2015 Распространённые ошибки разработчиков сайтов

Не секрет, что в сети Интернет насчитывается миллионы сайтов, и каждый день появляются тысячси новых......

подробнее

В отличие от языков более низкого уровня (например, C), скрипты идеально подходят для организации взаимодействия программ. Именно это их качество помогает решать сложные задачи простыми способами – несравнимо проще, чем это можно было бы сделать на том же C.

Хорошей иллюстрацией этому утверждению может послужить, к примеру, задача сбора информации на прикладном уровне.

Зачастую в качестве контроллера домена NT-сети применяется пакет Samba. Как известно, он помогает вообще избавиться от серверной ОС Windows во многих случаях. В составе пакета Samba есть программа smbstatus. С ее помощью можно получить список подключений к сетевым ресурсам и информацию о блокировках файлов. Формат данных, выдаваемых этой программой, примерно такой:

Data store   user     group   76905   buhgalter (192.168.0.3) Fri Apr 11 15:25:38 2003

76905 DENY_WRITE 0x20089 RDONLY EXCLUSIVE+BATCH /pub/file.txt   Thu Apr 11 17:30:46 2003

Перевести эти данные в список подключенных пользователей можно с помощью следующего скрипта (назовем его count_samba):

#!/bin/sh

 

smbstatus | grep -E "([0-9]{1,3}.){3}[0-9]{1,3}" | colrm 1 13 | grep -v -E "^nobody|^root"

| awk '{printf(" %s %s ",$1,$5)}' | sort | uniq | sed 's/[()]//g'

Данные от smbstatus преобразуются последовательностью утилит: сначала выбираются строки с IP-адресами, затем удаляется информация об именах ресурсов, удаляются строки с пользователями nobody и root, выводится информация о пользователе и адресе, которая затем сортируется, повторяющиеся строки удаляются и, наконец, удаляются скобки вокруг IP-адреса.

Символ «|» означает связывание программ с помощью канала (pipe), то есть стандартный вывод предыдущей программы связывается со стандартным вводом последующей. Это простейшее средство однонаправленного межпроцессного взаимодействия довольно широко применяется в UNIX именно из-за своей простоты. Как известно, чем проще инструмент, тем он надежнее – каналы как раз и есть этот простой и надежный инструмент. Одной из основ идеологии UNIX является использование нескольких простых утилит, связываемых через такие каналы, вместо одной большой и сложной программы (разумеется, только в тех случаях, когда этого достаточно для решения поставленной задачи).

Символ «» в конце строки указывает sh считать следующую строчку продолжением предыдущей. Можно, конечно, написать все в одну строчку, но в таком случае читабельность скрипта уменьшится.

В примере выше каждая из используемых утилит обрабатывает входной поток построчно. Посмотреть, как изменяются данные от одной программы к другой, можно последовательно подсоединяя к выходному потоку по одной программе, выстраивая их в цепочку.

Программа grep выбирает линии, соответствующие указанному регулярному выражению. Ключ -E используется вместе с расширенными регулярными выражениями. Выражение «([0-9]{1,3}.){3}[0-9]{1,3}» соответствует любому IP-адресу, а «^nobody|^root» – строкам, начинающимся с «nobody» или «root» (символ «|» здесь означает ИЛИ). Ключ -v указывает выбирать строки, не соответствующие заданному регулярному выражению. Подробнее о регулярных выражениях можно почитать на странице руководства grep(1).


Предыдущая страницаОглавлениеСледующая страница
 
[001] [002] [003] [004] [005] [006] [007] [008] [009] [010] [011] [012] [013] [014] [015] [016] [017] [018] [019] [020]
[021] [022] [023] [024] [025] [026] [027] [028] [029] [030] [031] [032] [033] [034] [035] [036] [037] [038] [039] [040]
[041] [042] [043] [044] [045] [046] [047] [048] [049] [050] [051] [052] [053] [054] [055] [056] [057] [058] [059] [060]
[061] [062] [063] [064] [065] [066] [067] [068] [069] [070] [071] [072] [073] [074] [075] [076] [077] [078] [079] [080]
[081] [082] [083] [084] [085] [086] [087] [088] [089] [090] [091] [092] [093] [094] [095] [096] [097] [098] [099] [100]
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
[141] [142] [143] [144] [145] [146] [147] [148]

+7 (831) 413-63-27
ООО Дельта-Технология ©2007 - 2023 год
Нижний Новгород, ул. Дальняя, 17А.
Rambler's Top100