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

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

Интервал:

Закладка:

Сделать

Код

Листинг 9.1.Сценарий checklinks

#!/bin/bash

# checklinks — проверяет все внутренние ссылки на веб-сайте, сообщает

#·· о любых ошибках в файле "traverse.errors".

# Удалить по завершении все служебные файлы, созданные программой lynx.

trap "$(which rm) −f traverse.dat traverse2.dat" 0

if [-z "$1"]; then

··echo "Usage: checklinks URL" >&2

··exit 1

fi

baseurl="$(echo $1 | cut −d/ −f3 | sed 's/http: \/\///')"

lynx картинка 404−traversal −accept_all_cookies картинка 405−realm "$1" > /dev/null

if [-s "traverse.errors"]; then

картинка 406··/bin/echo −n $(wc −l < traverse.errors) errors encountered.

··echo Checked $(grep '^http' traverse.dat | wc −l) pages at ${1}:

··sed "s|$1 ||g" < traverse.errors

··mv traverse.errors ${baseurl}.errors

··echo "A copy of this output has been saved in ${baseurl}.errors"

else

··/bin/echo −n "No errors encountered.";

··echo Checked $(grep '^http' traverse.dat | wc −l) pages at ${1}

fi

if [-s "reject.dat"]; then

··mv reject.dat ${baseurl}.rejects

fi

exit 0

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

Основная работа в этом сценарии выполняется программой lynx картинка 407; сам сценарий просто играет с файлами, которые создает lynx, извлекая из них информацию и отображая ее в удобочитаемом виде. В выходной файл reject.dat программа lynx записывает ссылки с внешними адресами URL (см. ниже сценарий № 70, который использует этот файл), в файл traverse.errors — недействительные ссылки (цель данного сценария), в файл traverse.dat — список всех проверенных страниц, и в файл traverse2.dat — тот же список страниц, что и в файл traverse.dat , но с дополнительно включенными заголовками всех исследованных страниц.

Команда lynx поддерживает большое количество разных аргументов, и в данном случае нам потребовалось использовать −accept_all_cookies картинка 408, чтобы программа не замучила нас вопросами — принимать или нет cookie от страницы. Мы также использовали аргумент −realm, чтобы проверке подвергались только страницы указанного уровня на сайте и «ниже», а не все ссылки, которые будут встречены на пути. Без аргумента −realm программа lynx могла бы отыскать тысячи и тысячи страниц. Мы попробовали выполнить функцию −traversal для адреса http://www.intuitive.com/wicked/без −realm, и она обнаружила более 6500 страниц после более чем двухчасовой работы. С фла −r— realm было найдено 146 страниц, на исследование которых ушло несколько минут.

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

Чтобы запустить сценарий, просто передайте ему адрес URL в командной строке. Сценарий способен выполнить анализ любого веб-сайта, но имейте в виду: проверка таких гигантов, как Google или Yahoo! может затянуться навечно и закончиться исчерпанием места на вашем диске.

Результаты

Давайте проверим маленький веб-сайт на наличие ошибок (листинг 9.2).

Листинг 9.2.Проверка веб-сайта, не имеющего ошибок, с помощью checklinks

$ checklinks http://www.404-error-page.com/

No errors encountered. Checked 1 pages at http://www.404-error-page.com/

Как видите, все в порядке. А если проверить сайт немного большего размера? В листинге 9.3 показано, что мог бы вывести сценарий checklinks в результате проверки сайта, содержащего недействительные ссылки.

Листинг 9.3.Проверка недействительных ссылок с помощью checklinks на более крупном веб-сайте

$ checklinks http://www.intuitive.com/library/

5 errors encountered. Checked 62 pages at http://intuitive.com/library/:

·· index/·· in BeingEarnest.shtml

·· Archive/f8·· in Archive/ArtofWriting.html

·· Archive/f11··in Archive/ArtofWriting.html

·· Archive/f16··in Archive/ArtofWriting.html

·· Archive/f18··in Archive/ArtofWriting.html

A copy of this output has been saved in intuitive.com.errors

Как показывают результаты, файл BeingEarnest.shtml содержит недействительную ссылку на /index/ , потому что нет такого файла /index/ . Также в файле ArtofWriting.html найдено четыре недействительные ссылки, имеющие странный вид.

Наконец, в листинге 9.4 показаны результаты проверки блога Дейва с обзорами фильмов, которая выявила в нем скрытые ошибки.

Листинг 9.4.Запуск сценария checklinks под управлением утилиты time, чтобы узнать продолжительность его работы

$ time checklinks http://www.daveonfilm.com/

No errors encountered. Checked 982 pages at http://www.daveonfilm.com/

real 50m15.069s

user 0m42.324s

sys 0m6.801s

Обратите внимание: добавив команду time перед другой командой, выполняющейся длительное время, можно узнать, как долго она выполнялась. В данном случае видно, что проверка всех 982 страниц в блоге http://www.daveonfilm.com/потребовала 50 минут реального времени, из которых фактическая обработка заняла 42 секунды. Это очень много!

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

Интервал:

Закладка:

Сделать

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

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


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

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

x