Intereting Posts
Зачем нужно добавлять GPG-ключ с ключом apt перед добавлением URL-адреса в sources.list и загрузку-установку приложения с помощью apt-get? Как определить конкретную сеть WIFI, связанную udev? как проверить версию ядра, которая использовалась при создании пакета Разделение сделано неправильно? Что означают разные счетчики памяти во FreeBSD? MacBook Pro Retina: огромное энергопотребление Получено сообщение «ОШИБКА: не удается декодировать канал связи типа 239» при включении режима сниффера разрешение запрещено на ~ / .ssh для его владельца! как перечислить пользователей в группе и их пароли QEMU для программ ARM с GDB xrandr не показывает порт hdmi и vga, внешний монитор не отображается Могут ли возможности использоваться в сценариях без setcap'в двоичном языке интерпретатора? Bash для просмотра изменений файловой системы с задержкой перед выполнением сценария резервного копирования Как я могу предотвратить блокировку tmux при прокрутке вверх? Не совпадать ни с регулярным выражением

Как получить имя файла и номер задания «at»

У нас есть сценарий (генератор), который создает серию заданий. На заданиях запускается другой скрипт PHP. Сценарий генератора прокручивается и делает что-то вроде этого:

 exec('/usr/bin/at 5:00 May 11, 2015 -f ' . $filename); 

$ filename выглядит примерно так:

 php /some-location/some-script.php arg1 arg2 arg3 

Это работает потрясающе, нам это нравится. Я пытаюсь понять, как захватить идентификатор задания и имя файла в /var/spool/at/filename из сценария генератора, когда он запускается, поэтому я могу его сохранить, если нам нужно изменить / отменить после того, как они были запланированы.

Кто-нибудь знает, как я могу захватить эту информацию от exec() который создает at Job?

Согласно документации на PHP exec () :

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

Ваша версия объявляет номер задания?

 $ echo /bin/true | at now + 1hour job 1 at Fri Apr 24 12:00:00 2015 

Если это так, вы можете использовать explode () с разделителем пробела, чтобы получить номер задания.

 <?php // Remember to redirect stderr to stdout with "2>&1" $command = "echo /bin/true | at now + 1hour 2>&1"; $at_message = explode(" ", exec($command, $output, $return_value)); $job_number = $at_message[1]; echo $job_number; ?>