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

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

Интервал:

Закладка:

Сделать

В действительности эта дилемма не имеет надежного решения. Если только речь не идет о создании обертки для run-script или periodic, которая будет знать, как управлять запоминанием времени, чтобы гарантировать невозможность слишком частого запуска заданий. Впрочем, не исключено, что мы вообще зря беспокоимся об этом.

№ 50. Ротация файлов журналов

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

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

mv $log.2 $log.3

mv $log.1 $log.2

mv $log $log.1

touch $log

Если запускать эту группу команд раз в неделю, в вашем распоряжении всегда будет месячный архив информации из файла журнала, разделенный на порции недельного объема. Однако легко можно создать сценарий, который проделает ту же операцию сразу со всеми файлами журналов в каталоге /var/log , освободив тем самым сценарии анализа от лишнего бремени и организовав ротацию файлов даже в течение месяцев, когда администратор ничего не анализировал.

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

Код

Листинг 6.12.Сценарий rotatelogs

#!/bin/bash

# rotatelogs — выполняет ротацию файлов журналов в /var/log с целью

#·· архивирования и чтобы предотвратить чрезмерное увеличение файлов

#·· в размерах. Этот сценарий использует файл конфигурации, в котором

#·· можно настроить период ротации каждого файла. Записи в конфигурационном

#·· файле имеют формат logfilename=duration, где duration определяет

#·· количество дней. Если запись в конфигурационном файле для журнала

#·· logfilename отсутствует, rotatelogs будет выполнять ротацию такого

#·· журнала с частотой раз в семь дней. Если для журнала установлена

#·· продолжительность периода ротации, равная нулю, этот журнал будет

#·· игнорироваться сценарием.

logdir="/var/log"····# У вас журналы могут находиться в другом каталоге.

config="$logdir/rotatelogs.conf"

mv="/bin/mv"

default_duration=7·· # По умолчанию ротация выполняется через 7 дней.

count=0

duration=$default_duration

if [! -f $config]; then

··# Файл конфигурации отсутствует? Выйти. Эту проверку можно убрать

··#·· и в отсутствие конфигурационного файла просто использовать настройки

··#·· по умолчанию.

··echo "$0: no config file found. Can't proceed." >&2

··exit 1

fi

if [! -w $logdir −o! −x $logdir]; then

··# −w — право на запись, а −x — право на выполнение. Для создания

··#·· новых файлов в каталогах Unix или Linux необходимы оба. Если

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

··echo "$0: you don't have the appropriate permissions in $logdir" >&2

··exit 1

fi

cd $logdir

# Как бы нам ни хотелось использовать в команде find стандартные обозначения,

#·· такие как: digit:, многие версии find не поддерживают POSIX-совместимые

#·· классы символов — поэтому [0–9].

# Замысловатая команда find подробно обсуждается далее в этом разделе.

#·· Не пропустите, если вам интересно!

for name in $( картинка 339find. -maxdepth 1 −type f −size +0c! −name '*[0–9]*' \

····! -name '\.*'! -name '*conf' −print | sed 's/^\.\///')

do

··count=$(($count + 1))

··# Извлечь соответствующую запись из конфигурационного файла.

··duration="$(grep "^${name}=" $config|cut −d= −f2)"

··if [-z "$duration"]; then

····duration=$default_duration # Если совпадений нет, использовать период··································по умолчанию.

··elif ["$duration" = "0"]; then

····echo "Duration set to zero: skipping $name"

····continue

··fi

··# Подготовить имена файлов для ротации. Это просто:

··back1="${name}.1"; back2="${name}.2";

··back3="${name}.3"; back4="${name}.4";

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

Интервал:

Закладка:

Сделать

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

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


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

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

x