AT
Команда AT в Windows NT представляет собой эквивалент сгоп в Linux. Она позволяет автоматически запускать задания под Windows 2000, ХР и NT. Для этого надо ввести запись в список AT. Это делается из командной строки путем ввода команды вида:
at [\\computername] time [/interactive] [/every:date[,...] | /next:date[,... ]] command
Нам надо, чтобы каждую полночь выполнялась команда php -q c:\ma- H_stats. php (в предположении, что сценарий mail_stats, php находится в корневом каталоге диска Этого можно добиться следующей командой:
AT 00:00 /every:M,T,W,Th,F,S,Su php -q c:\mail_stats.php
Она устанавливает, что php -q выполняется в полночь в
каждый день недели (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday и Sunday).
Планировщикзаданий Windows
В Windows 95/98/ME не существует механизма or on tab/AT, Вместо этого имеется планировщик заданий. Доступ к мастеру планирования заданий осуществляется через Start | Programs| Accessories | System Tools Scheduled Tasks.
Сначала надо создать пакетный файл, например С: \CHECKL0G. ВАТ. С помощью этого пакетного файла мы будем выполнять сценарий. Будем считать, что переменная пути установлена правильно, и тогда в нем должна быть всего одна строка:
php -q c:\mail_stats.php
Сохранив этот файл на диске, откройте Scheduled Task Manager и добавьте новое задание двойным щелчком по значку Add Scheduled Task. Щелкните по кнопке Next и задайте только что созданный пакетный файл, нажав кнопку Browse и найдя его. Заданию можно присвоить имя (например, CheckLogTask) и указать время и регулярность его выполнения. Однако при работе с планировщиком заданий есть довольно существенное ограничение. Для каждого задания можно установить только один момент времени. Эту проблему можно решить, создав несколько заданий, запускающих одну и ту же программу, и дать им разные имена (CheckLogTaskl, CheckLogTask2, CheckLogTask3 и т. д.).
Передача аргументов в командной строке
Приведенный сценарий справляется со своей задачей, но что делать, если есть несколько журналов для различных виртуальных серверов и каждый журнал надо направлять своему администратору? Одно из решений состоит в том, чтобы иметь по экземпляру сценария для каждого журнала, указав в каждом свои переменные для журналов и администраторов. Гораздо эффективнее принимать аргументы из командной строки, чтобы вызывать сценарий в виде mail_stats. php <logfile> <administrators_email>.