Дейв Тейлор - Сценарии командной оболочки. 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-е издание», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

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

Интервал:

Закладка:

Сделать

··#·· в соответствии с вашей конфигурацией.

··htdocs="/usr/local/etc/httpd/htdocs/"

··myhome="/usr/home/taylor/"

··cgibin="/usr/local/etc/httpd/cgi-bin/"

··sedstr="s/^/ /g;s|$htdocs|[htdocs] |;s|$myhome|[homedir] "

··sedstr=$sedstr"|;s|$cgibin|[cgi-bin] |"

··screen="(File does not exist|Invalid error redirect|premature EOF"

··screen=$screen"|Premature end of script|script not found)"

··length=5 # Количество отображаемых записей в каждой категории

··checkfor()

··{

····grep "${2}:" "$1" | awk '{print $NF}' \

······| sort | uniq −c | sort −rn | head −$length | sed "$sedstr" > $temp

····if [$(wc −l < $temp) −gt 0]; then

······echo ""

······echo "$2 errors: "

······cat $temp

····fi

··}

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

··if ["$1" = "-l"]; then

····length=$2; shift 2

··fi

··if [$# −ne 1 −o! −r "$1"]; then

····echo "Usage: $(basename $0) [-l len] error_log" >&2

····exit 1

··fi

··echo Input file $1 has $(wc −l < "$1") entries.

··start="$(grep −E '\[.*:.*:.*\]' "$1" | head -1 \

····| awk '{print $1" "$2" "$3" "$4" "$5 }')"

··end="$(grep −E '\[.*:.*:.*\]' "$1" | tail -1 \

····| awk '{print $1" "$2" "$3" "$4" "$5 }')"

··/bin/echo −n "Entries from $start to $end"

··echo ""

··### Проверить типичные и хорошо известные ошибки:

··checkfor "$1" "File does not exist"

··checkfor "$1" "Invalid error redirection directive"

··checkfor "$1" "Premature EOF"

··checkfor "$1" "Script not found or unable to stat"

··checkfor "$1" "Premature end of script headers"

картинка 445··grep −vE "$screen" "$1" | grep "\[error\]" | grep "\[client " \

····| sed 's/\[error\]/\`/' | cut −d\` −f2 | cut −d\ −f4- \

картинка 446····| sort | uniq −c | sort −rn | sed 's/^/ /' | head −$length > $temp

··if [$(wc −l < $temp) −gt 0]; then

····echo ""

····echo "Additional error messages in log file: "

····cat $temp

··fi

··echo ""

··echo "And non-error messages occurring in the log file: "

картинка 447··grep −vE "$screen" "$1" | grep −v "\[error\]" \

····| sort | uniq −c | sort −rn \

····| sed 's/^/ /' | head −$length

··exit 0

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

Этот сценарий сканирует файл журнала error_log на наличие пяти ошибок, указанных в вызовах функции checkfor, с помощью awk извлекая из каждой записи последнее поле, то есть поле с номером в переменной $NF (которая представляет количество полей в данной записи). Затем передает результат последовательности команд sort | uniq −c | sort −rn картинка 448, чтобы проще было определить источник ошибок данной категории.

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

Последние несколько строк сценария находят наиболее распространенные ошибки, не относящиеся к предопределенным категориям, но являющиеся стандартными для формата журнала error_log веб-сервера Apache. Команда grep картинка 449представляет собой часть длинного конвейера.

Затем сценарий находит не обнаруженные ранее наиболее распространенные ошибки, которые не являются стандартными для формата журнала error_log веб-сервера Apache. И снова команда grep картинка 450составляет часть длинного конвейера.

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

Чтобы запустить этот сценарий, просто передайте ему в единственном аргументе полный путь к файлу журнала error_log в стандартном формате веб-сервера Apache, как показано в листинге 10.6. Если передать ему дополнительный аргумент −l length, он выведет указанное количество совпадений в каждой категории вместо пяти по умолчанию.

Результаты

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

$ weberrors error_log

Input file error_log has 768 entries.

Entries from [Mon Jun 05 03:35:34 2017] to [Fri Jun 09 13:22:58 2017]

File does not exist errors:

······ 94 /var/www/vhosts/default/htdocs/mnews.htm

······ 36 /var/www/vhosts/default/htdocs/robots.txt

······ 15 /var/www/vhosts/default/htdocs/index.rdf

······ 10 /var/www/vhosts/default/htdocs/clientaccesspolicy.xml

········5 /var/www/vhosts/default/htdocs/phpMyAdmin

Script not found or unable to stat errors:

········1 /var/www/vhosts/default/cgi-binphp5

········1 /var/www/vhosts/default/cgi-binphp4

········1 /var/www/vhosts/default/cgi-binphp.cgi

········1 /var/www/vhosts/default/cgi-binphp-cgi

········1 /var/www/vhosts/default/cgi-binphp

Additional error messages in log file:

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

Интервал:

Закладка:

Сделать

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

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


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

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

x