Дейв Тейлор - Сценарии командной оболочки. 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.1 перечислены поля в файле access_log .

Таблица 10.1.Значения полей в файле access_log
Поле Значение
1 IP-адрес хоста, обратившегося к серверу
2–3 Защитная информация для соединений HTTPS/SSL
4 Дата и часовой пояс данного запроса
5 Метод вызова
6 Запрошенный URL
7 Использованный протокол
8 Код результата
9 Число переданных байтов
10 Ссылающийся домен
11 Строка идентификации браузера

Типичная строка в access_log имеет следующий вид:

65.55.219.126 — [04/Jul/2016:14:07:23 +0000] "GET /index.rdf HTTP/1.0" 301

310 "-" "msnbot-UDiscovery/2.0b (+http://search.msn.com/msnbot.htm)""

Код результата 301 (поле 8) указывает, что запрос был успешно обработан. Ссылающийся домен (поле 10) определяет URL страницы, которую пользователь просматривал непосредственно перед запросом. Десять лет тому назад в этом поле передавался URL предыдущей страницы; теперь, по соображениям безопасности, в нем обычно указывается "-", как показано в примере.

Количество обращений к сайту можно определить, подсчитав строки в файле журнала, а диапазон дат записей в файле — по первой и последней строкам.

$ wc −l access_log

·· 7836 access_log

$ head -1 access_log; tail -1 access_log

69.195.124.69 — [29/Jun/2016:03:35:37 +0000]…

65.55.219.126 — [04/Jul/2016:14:07:23 +0000]…

Используя эту информацию, сценарий в листинге 10.1 выводит большой объем статистической информации из файла журнала access_log в формате веб-сервера Apache. Предполагается, что сценарии scriptbc и nicenumber, написанные нами в главе 1, находятся в одном из каталогов, перечисленных в переменной окружения PATH.

Код

Листинг 10.1.Сценарий webaccess

··#!/bin/bash

··# webaccess — анализирует файл журнала access_log в формате веб-сервера

··#·· Apache, извлекая полезную и интересную статистическую информацию.

··bytes_in_gb=1048576

··# Измените следующую переменную, чтобы она соответствовала имени хоста

··#·· вашего веб-сервера, чтобы отфильтровать запросы, обусловленные

··#·· внутренними переходами, при анализе ссылающихся доменов.

··host="intuitive.com"

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

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

····exit 1

··fi

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

····echo "Error: log file $1 not found." >&2

····exit 1

··fi

картинка 427firstdate="$(head -1 "$1" | awk '{print $4}' | sed 's/\[//')"

··lastdate="$(tail -1 "$1" | awk '{print $4}' | sed 's/\[//')"

··echo "Results of analyzing log file $1"

··echo ""

··echo " Start date: $(echo $firstdate|sed 's/:/ at /')"

··echo " End date: $(echo $lastdate|sed 's/:/ at /')"

картинка 428··hits="$(wc −l < "$1" | sed 's/[^[: digit: ]]//g')"

··echo "········ Hits: $(nicenumber $hits) (total accesses)"

картинка 429··pages="$(grep −ivE '(.gif|.jpg|.png)' "$1" | wc −l | sed 's/[^[: digit: ]]//g')"

··echo "·· Pageviews: $(nicenumber $pages) (hits minus graphics)"

··totalbytes="$(awk '{sum+=$10} END {print sum}' "$1")"

··/bin/echo −n " Transferred: $(nicenumber $totalbytes) bytes "

··if [$totalbytes −gt $bytes_in_gb]; then

····echo "($(scriptbc $totalbytes / $bytes_in_gb) GB)"

··elif [$totalbytes −gt 1024]; then

····echo "($(scriptbc $totalbytes / 1024) MB)"

··else

····echo ""

··fi

··# Теперь выберем из журнала некоторые полезные данные.

··echo ""

··echo "The 10 most popular pages were: "

картинка 430··awk '{print $7}' "$1" | grep −ivE '(.gif|.jpg|.png)' | \

···· sed 's/\/$//g' | sort | \

···· uniq −c | sort −rn | head -10

··echo ""

··echo "The 10 most common referrer URLs were: "

картинка 431··awk '{print $11}' "$1" | \

····grep −vE "(^\"-\"$|/www.$host|/$host)" | \

····sort | uniq −c | sort −rn | head -10

··echo ""

··exit 0

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

Рассмотрим каждый блок как отдельный небольшой сценарий. Например, первые несколько строк извлекают начальную и конечную дату (переменные firstdate и lastdate) картинка 432, просто читая четвертое поле в первой и последней строках в файле. Количество посещений определяется подсчетом строк в файле с помощью wc картинка 433, а количество просмотренных страниц — как разность посещений и запросов файлов изображений (то есть файлов с расширениями .gif, jpg и .png ). Общее количество отправленных байтов определяется как сумма значений десятого поля во всех строках, которая затем обрабатывается сценарием nicenumber для удобочитаемости.

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

Интервал:

Закладка:

Сделать

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

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


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

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

x