Приемы профессиональной работы в UNIX



             

УПРАВЛЕНИЕ ВРЕМЕНЕМ - часть 2


ИМЯ: at

at - выполнить команду или файл в указанное время

НАЗНАЧЕНИЕ

Переводит любую командную строку в фоновый режим и выполняет ее в заданное время.

ФОРМАТ ВЫЗОВА

at hr:min cmd [;cmd ...]

ПРИМЕР ВЫЗОВА

at 12:00 echo "time for lunch!"

В двенадцать часов дня выводит сообщение на экран терминала.

ТЕКСТ ПРОГРАММЫ at

1 : 2 # @(#) tree v1.0 Execute command line at specific time Author: Russ Sage 2а Выполнить командную строку в указанное время   4 if [ $# -lt 2 ] 5 then echo "at: wrong arg count" >&2 6 echo "usage: at hr:min cmd [;cmd ...]" >&2 7 exit 1 8 fi   10 ITS=$1; shift   12 while : 13 do 14 TIME=`date | cut -c12-16`   16 if [ "$ITS" = "$TIME" ] 17 then eval $@ 18 exit 0 19 else sleep 35 20 fi 21 done &

ПЕРЕМЕННЫЕ СРЕДЫ ВЫПОЛНЕНИЯ

ITS Время, в которое следует выполнить указанные команды
TIME Текущее время в системе

ОПИСАНИЕ

Зачем нам нужен at?

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

Командный файл at предоставляет механизм для выполнения задач, связанных со временем. Мы можем сказать системе, что и когда мы хотим сделать. Задача остается "спящей" в фоновом режиме до назначенного времени. Это дает нам возможность превратить компьютер в будильник, секретаря, администратора встреч и т.д.

Данная концепция не нова и уже существует в системе Berkeley UNIX под тем же именем. Она реализована также в последних версиях System V. Почему же тогда мы представляем здесь нашу собственную версию? Одна из причин в том, что многие из вас имеют более ранние версии UNIX, в которых это средство отсутствует. Но важнее, видимо, другое наша цель не в том, чтобы сделать существующие команды at устаревшими, а в показе того, как легко отслеживать время и реализовывать обработку, связанную со временем. Имея нашу собственную команду at, мы можем настроить ее по своему вкусу и изменить ее, когда необходимо. Команда at, представленная здесь, фактически более гибкая, чем at в системе Berkeley, хотя в первой отсутствуют некоторые особенности второй. Она более гибкая потому, что вы можете поместить настоящие команды в фоновую задачу at, в то время как для at в системе Berkeley вы должны использовать имя командного файла интерпретатора shell. Метод Berkeley запрещает вам вызывать исполняемые модули непосредственно в командной строке, а наша at - нет. (Конечно, вы можете с таким же успехом использовать командные файлы интерпретатора shell, если вам это необходимо.)

Что делает at?




Содержание  Назад  Вперед