Дейв Тейлор - Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание

Здесь есть возможность читать онлайн «Дейв Тейлор - Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: СПб., Год выпуска: 2017, ISBN: 2017, Издательство: Питер, Жанр: Программирование, ОС и Сети, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Сценарии командной оболочки помогают системным администраторам и программистам автоматизировать рутинные задачи с тех самых пор, как появились первые компьютеры. С момента выхода первого издания этой книги в 2004 году многое изменилось, однако командная оболочка bash только упрочила свои лидирующие позиции. Поэтому умение использовать все ее возможности становится насущной необходимостью для системных администраторов, инженеров и энтузиастов. В этой книге описываются типичные проблемы, с которыми можно столкнуться, например, при сборке программного обеспечения или координации действий других программ. А решения даются так, что их легко можно взять за основу и экстраполировать на другие схожие задачи.
Цель этой книги — продемонстрировать практические приемы программирования сценариев на bash и познакомить с самыми распространенными утилитами на коротких и компактных примерах, не вдаваясь в излишние подробности. Экспериментируйте с этими сценариями — ломайте, исправляйте и приспосабливайте их под свои нужды, чтобы понять, как они работают. Только так вы сможете решать самые сложные задачи.

Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Код

Листинг 10.3.Сценарий searchinfo

··#!/bin/bash

··# searchinfo — извлекает и анализирует трафик поисковых систем, указанных

··#·· в поле с информацией о ссылающихся доменах, в обобщенном формате

··#·· журналирования.

··host="intuitive.com"·· # Замените именем своего домена.

··maxmatches=20

··count=0

··temp="/tmp/$(basename $0).$$"

··trap "$(which rm) −f $temp" 0

··if [$# −eq 0]; then

····echo "Usage: $(basename $0) logfile" >&2

····exit 1

··fi

··if [! -r "$1"]; then

····echo "Error: can't open file $1 for analysis." >&2

····exit 1

··fi

картинка 437··for URL in $(awk '{ if (length($11) > 4) { print $11 } }' "$1" | \

····grep −vE "(/www.$host|/$host)" | grep '?')

··do

картинка 438····searchengine="$(echo $URL | cut −f— f3 | rev | cut −d. -f1-2 | rev)"

····args="$(echo $URL | cut −d\? -f2 | tr '&' '\n' | \

······grep −E '(^q=|^sid=|^p=|query=|item=|ask=|name=|topic=)' | \

картинка 439······sed −e 's/+/ /g' −e 's/%20/ /g' −e 's/"//g' | cut −d= −f2)"

····if [! -z "$args"]; then

······echo "${searchengine}: $args" >> $temp

картинка 440····else

······# Запрос неизвестного формата, показать всю строку GET…

······echo "${searchengine} $(echo $URL | cut −d\? -f2)" >> $temp

····fi

····count="$(($count + 1))"

··done

··echo "Search engine referrer info extracted from ${1}:"

··sort $temp | uniq −c | sort −rn | head −$maxmatches | sed 's/^/ /g'

··echo ""

··echo Scanned $count entries in log file out of $(wc −l < "$1") total.

··exit 0

Как это работает

Главный цикл for картинка 441в этом сценарии извлекает все записи из файла журнала, имеющие допустимое значение в поле со ссылающимся доменом: строку длиной более четырех символов, не совпадающую с содержимым переменной $host и знаком вопроса (?), указывающим, что пользователь выполнял поиск.

Далее сценарий пытается идентифицировать имя ссылающегося домена и строку поиска, введенную пользователем картинка 442. Исследования сотен поисковых запросов показывают, что типичные поисковые сайты используют небольшое количество переменных с известными именами. Например, в случае с Yahoo! строка поиска будет содержать переменную со строкой поиска p= шаблон . Google и MSN используют переменную с именем q. Команда grep проверяет присутствие p, q и других распространенных имен поисковых переменных.

Команда sed картинка 443очищает извлеченные строки поиска, замещая + и %20 пробелами и убирая кавычки, а команда cut возвращает все, что следует за первым знаком «равно». Иными словами, код возвращает только искомую строку, которую ввел пользователь.

Условный блок, следующий сразу за этими строками, проверяет переменную args. Если она ничего не содержит (то есть если запрос имеет неизвестный формат) — использовалась неизвестная нам поисковая система, поэтому выводится весь запрос целиком, а не только искомая строка.

Запуск сценария

Чтобы запустить этот сценарий, просто передайте ему единственный аргумент с именем файла журнала Apache или другого веб-сервера, поддерживающего обобщенный формат журналирования (листинг 10.4).

ПРИМЕЧАНИЕ

Это один из самых медленных сценариев в данной книге, потому что он запускает много подоболочек для выполнения разных задач. Не удивляйтесь, если его работа потребует значительного времени.

Результаты

Листинг 10.4.Результаты обработки журнала access_log веб-сервера Apache с помощью searchinfo

$ searchinfo /web/logs/intuitive/access_log

Search engine referrer info extracted from access_log:

······771

········4 online reputation management akado

········4 Names Hawaiian Flowers

········3 norvegian star

········3 disneyland pirates of the caribbean

········3 disney california adventure

········3 colorado railroad

········3 Cirque Du Soleil Masks

········2 www.baskerballcamp.com

········2 o logo

········2 hawaiian flowers

········2 disneyland pictures pirates of the caribbean

········2 cirque

········2 cirqu

········2 Voil%C3%A0 le %3Cb%3Elogo du Cirque du Soleil%3C%2Fb%3E%21

········2 Tropical Flowers Pictures and Names

········2 Hawaiian Flowers

········2 Hawaii Waterfalls

········2 Downtown Disney Map Anaheim

Scanned 983 entries in log file out of 7839 total.

Усовершенствование сценария

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание»

Представляем Вашему вниманию похожие книги на «Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание»

Обсуждение, отзывы о книге «Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x