「at」ジョブのファイル名とジョブ番号を取得する方法

「at」ジョブのファイル名とジョブ番号を取得する方法

一連のジョブを生成するスクリプト(ジェネレータ)がありますat。これらの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ジェネレータスクリプトの実行中にジョブIDとファイル名を取得し、予約後に変更/キャンセルする必要がある場合に備えて保存する方法です。

ジョブをexec()作成した人からこの情報をどのように取得できるかを知っている人はいますか?at

答え1

PHP文書によると実装する():

出力パラメータがある場合、指定された配列はコマンド出力の各行を埋めます。

あなたのバージョンでat位置番号を宣言しますか?

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

その場合は、次のものを使用できます。ぽんと鳴る()ジョブ番号を取得するには、スペース区切り文字を使用します。

<?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;
?>

関連情報