Linux и UNIX: программирование в shell. Руководство разработчика
вернуться

Тейнсли Дэвид

Шрифт:

25.6. Заключение

В главе содержатся примеры по автоматизации задач с использованием конструкции "документ здесь". Конструкцию "документ здесь" можно применять при решении большого количества задач, особенно при установке подключения к приложениям или выполнении команды ftping. Приведенные сценарии можно выполнять и модифицировать для решения конкретных задач конечного пользователя.

ГЛАВА 26

Утилиты интерпретатора shell

В этой главе рассматриваются следующие темы:

• создание датируемых имен файлов и временных файлов;

• сигналы;

• команда trap и способы перехвата сигналов;

• команда eval;

• команда logger.

26.1. Создание регистрационных файлов

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

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

26.1.1. Применение команды date для создания журнальных файлов

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

Для изменения формата отображения данных применяется следующий формат:

date option + %format

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

$ date +%d%m%y

090699

Приведем некоторые наиболее часто применяемые форматы данных.

$ date +%d-%m-%y

09-06-99

$ date +%A%e" "%B" "%Y

Wednesday 9 June 1999

Отображение времени в формате чч: мм: $ date +%R

10:07

$ date +%A" "W "%p Wednesday 10:09 AM

Отображение времени в расширенном формате: $ date +%T

10:29:41

$ date +%A" "%T

Wednesday 10:31:19

Обратите внимание на применение двойных кавычек, которые позволяют в потоке данных вывода указывать пробелы.

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

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

Сценарий имеет вид:

$ pg log

#!/bin/sh

# регистрация

#

MYDATE=`date +%d%m%y`

#присоединение MYDATE к переменной LOGFILE, которая содержит действительное #имя файла регистрации.

LOGFILE=/logs/backup_log.$MYDATE

#создание файла

>$LOGFILE

MVTTIME= `date +%d%R` LOGFILE2=/logs/admin_log.$MYTIME

# создание файла

>$LOGFILE2

При выполнении этого сценария создаются два журнальных файла.

backup_log.09069 9 admin_log.09l6:18

26.1.2. Создание уникальных временных файлов

При рассмотрении специальных переменных уже обсуждалась переменная $$ Она содержит ID или номер процесса, выполняющегося в текущий момент. Эти сведения применяются при создании временных файлов в текущем сценарии, поскольку ID процесса уникален в рамках сценария. Достаточно лишь создать файл и присоединить к нему символ $$, После завершения можно удалить все файлы, имеющие символ $$ в качестве расширения. Интерпретатор shell оценивает переменную $$ как текущий ID процесса и удаляет эти файлы, но оставляет файлы, к которым присоединен ID процесса.

В командной строке введите следующую команду:

$ echo $$

281

Это значение ID процесса приведено для примера; в вашем случае, скорее всего, будет получено другое значение. Если создать новый сеанс и ввести эту же команду, получится другой номер, поскольку будет запущен иной процесс.

$ echo $$

382

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

$ pg tempfiles

#!/bin/sh

#tempfiles

#именование временных файлов

  • Читать дальше
  • 1
  • ...
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • ...

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

Полезные ссылки

  • Моя полка

Контакты

  • help@private-bookers.win