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

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

Интервал:

Закладка:

Сделать

Далее, в строке картинка 143, сценарий unrm проверяет, не затрет ли он существующий файл, и затем восстанавливает файл или каталог вызовом команды /bin/mv. После этого в картинка 144пользователю дается возможность удалить все остальные (вероятно, избыточные) копии файла, и сценарий завершается.

Обратите внимание, что команда ls с шаблоном *"$1" найдет все файлы, имена которых оканчиваются значением параметра $1, поэтому список с «совпавшими файлами» может содержать не только файл, который пользователь хотел бы восстановить. Например, если удаляемый каталог содержал файлы 11.txt и 111.txt , команда unrm 11.txt сообщит, что найдено несколько совпадений и вернет список с обоими файлами, 11.txt и 111.txt . На первый взгляд в этом нет ничего страшного, но как только пользователь выберет файл для восстановления ( 11.txt ) и ответит утвердительно на предложение удалить другие копии, сценарий удалит также файл 111.txt . Такое поведение по умолчанию в некоторых случаях может оказаться нежелательным. Однако это легко исправить, использовав шаблон??.??.??.??.??."$1", если в сценарии newrm сохранен формат префикса в именах копий.

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

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

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

Результаты

При запуске без аргументов сценарий выведет список всех файлов и каталогов в архиве удаленных файлов, как показано в листинге 2.8.

Листинг 2.8.При запуске без аргументов сценарий unrm выведет список файлов и каталогов, доступных для восстановления

$ unrm

Contents of your deleted files archive (sorted by date):

··detritus··················this is a test

··detritus··················garbage

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

Листинг 2.9.При запуске с единственным аргументом сценарий unrm попытается восстановить файл

$ unrm detritus

More than one file or directory match in the archive:

··1) detritus (size = 7688Kb, deleted = 11/29 at 10:00:12)

··2) detritus (size = 4Kb, deleted = 11/29 at 09:59:51)

Which version of detritus should I restore ('0' to quit)? [1]: 0

unrm: Restore canceled by user.

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

Используйте этот сценарий внимательно, потому что в нем не выполняется никаких проверок и отсутствуют всякие ограничения. Объем архива с удаленными файлами будет расти без всяких ограничений. Чтобы избежать исчерпания дискового пространства, создайте задание для cron, вызывающее команду find, для очистки удаленных файлов, с флагом −mtime, чтобы выявить файлы, остававшиеся невостребованными в течение нескольких недель. 14-дневного срока хранения в архиве, вероятно, будет вполне достаточно и для большинства пользователей, и для того, чтобы предотвратить исчерпание дискового пространства.

Можно также внести ряд других усовершенствований, которые сделают сценарий более дружественным для пользователя. Например, добавить флаг −l для восстановления последней (latest) копии и флаг−D для удаления дополнительных копий файла. Подумайте, какие еще флаги вы добавили бы, чтобы упростить работу со сценарием?

№ 17. Журналирование операций удаления файлов

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

Такого эффекта можно добиться, использовав сценарий в роли обертки. Основная идея любой обертки состоит в том, что она располагается между фактической командой Unix и пользователем, предлагая дополнительные возможности, недоступные в оригинальной команде.

ПРИМЕЧАНИЕ

Обертки — мощная концепция, и в этой книге вы еще не раз встретитесь с ней.

Код

Листинг 2.10.Сценарий logrm

··#!/bin/bash

··# logrm — журналирует все операции удаления файлов, если вызывается без флага −s

··removelog="/var/log/remove.log"

картинка 145··if [$# −eq 0]; then

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

Интервал:

Закладка:

Сделать

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

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


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

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

x