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

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

Интервал:

Закладка:

Сделать

Результаты

Обычная команда df выводит результаты в виде, трудном для понимания, как показано в листинге 5.7.

Листинг 5.7.В выводе по умолчанию команды df сложно разобраться

$ df

Filesystem························512-blocks Used······Available Capacity Mounted on

/dev/disk0s2······················935761728··628835600 306414128 68 %······/

devfs···························· 375········375······ 0········ 100 %···· /dev

map −hosts························0··········0········ 0········ 100 %···· /net

map auto_home···················· 0··········0········ 0········ 100 %···· /home

localhost:/mNhtYYw9t5GR1SlUmkgN1E 935761728··935761728 0········ 100 %···· /Volumes/·········································································· Mobile-·········································································· Backups

Новый сценарий использует awk для увеличения удобочитаемости и преобразует 512-байтные блоки в более понятный формат, как можно видеть в листинге 5.8.

Листинг 5.8.Простой и понятный вывод сценария newdf

$ newdf

Filesystem························Size·· Used····Avail·· Capacity Mounted

/dev/disk0s2······················446.2G 299.86G 146.09G 68 %······/

devfs···························· 187K·· 187K····0······ 100 %···· /dev

map −hosts························0······0······ 0······ 100 %

map auto_home···················· 0······0······ 0······ 100 %

localhost:/mNhtYYw9t5GR1SlUmkgN1E 446.2G 446.2G··0······ 100 %···· /Volumes/····································································Mobile-····································································Backups

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

В этом сценарии много недостатков, и один из самых значительных — наличие версий df, включающих информацию об использовании индексных узлов (inode) и даже внутреннюю информацию о процессоре, хотя она не представляет никакого интереса (как две записи map в примере выше). Сценарий был бы намного полезнее, если бы мы удалили вывод подобной ненужной информации, поэтому в первую очередь стоить применить флаг −P в вызове df, ближе к концу сценария картинка 275, чтобы удалить из вывода информацию об использовании индексных узлов. (Ее можно было бы вывести в отдельном столбце, но тогда вывод станет еще шире и форматировать его станет труднее.) Чтобы удалить записи map, достаточно воспользоваться командой grep. Просто добавьте в конец команды |grep −v "^map" картинка 276, и вы навсегда избавитесь от них.

№ 38. Определение доступного пространства на диске

Коль скоро сценарий № 37 способен упростить вывод команды df, чтобы его было легче читать и понимать, тогда на более простой вопрос об объеме доступного дискового пространства в системе тем более можно ответить с помощью сценария командной оболочки. Команда df действительно сообщает информацию для каждого диска, но для ее осмысления требуется приложить некоторые усилия:

$ df

Filesystem····1K-blocks Used···· Available Use% Mounted on

/dev/hdb2···· 25695892··1871048··22519564··8 %·· /

/dev/hdb1···· 101089····6218···· 89652···· 7 %·· /boot

none··········127744····0········127744····0 %·· /dev/shm

Более полезная версия df могла бы суммировать числа в колонке «Available» (Доступно) и выводить ее в удобочитаемом виде. Эта задача легко решается с помощью команды awk, как показано в листинге 5.9.

Код

Листинг 5.9.Сценарий diskspace, удобная обертка для df, сообщающая информацию в дружественном формате

··#!/bin/bash

··# diskspace — суммирует доступное дисковое пространство и выводит сумму

··#·· в логичном и удобочитаемом виде

··tempfile="/tmp/available.$$"

··trap "rm −f $tempfile" EXIT

··cat << 'EOF' > $tempfile

······{ sum += $4 }

··END { mb = sum / 1024

········gb = mb / 1024

········printf "%.0f MB (%.2fGB) of available disk space\n", mb, gb

······}

··EOF

картинка 277··df −k | awk −f $tempfile

··exit 0

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

Сценарий diskspace опирается на временный awk-сценарий, который сохраняется в каталоге /tmp . Этот awk-сценарий вычисляет общий объем доступного дискового пространства на основе переданных ему данных и затем выводит результат в удобочитаемом формате. Результаты вызова команды df по конвейеру передаются команде awk картинка 278, которая в свою очередь выполняет операции, определяемые awk-сценарием. Когда работа сценария завершается, временный awk-сценарий удаляется из каталога /tmp благодаря обработчику сигнала выхода, установленному командой trap в начале сценария.

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

Интервал:

Закладка:

Сделать

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

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


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

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

x