私のcronjobがPHPを介して私のサーバーで実行されていることをどうやって確認できますか?

私のcronjobがPHPを介して私のサーバーで実行されていることをどうやって確認できますか?

cronが実行されていない場合、または私のサーバーのcrontabに特定のcronjobが設定されていない場合は、警告を表示したいと思います。

phpで確認できますか?

ベストアンサー1

出力を解析して、特定crontab -lのcrontabエントリが存在するかどうかを確認できます。実行中かどうかについては、cronコマンド出力を解析して実行中かどうかをps -eaf確認できます。crond

$ ps -eaf|grep [c]rond
root      1705     1  0 May27 ?        00:00:03 crond

出力はcrontab -l次のとおりです。

$ crontab -l
0 12 * * * ls

注:以下を使用できます。system()機能PHPでコマンドラインツールを呼び出すexec()

編集#1

あなたのコメントに応じて、PHPで次のことができます。私のスクリプトcronstatus.php

#!/usr/bin/php
<?php
exec("PATH=/usr/sbin:/usr/bin:/sbin:/bin; service crond status", $out, $ret);
print $ret . "\n";
?>

実行例

$ sudo service crond stop
Stopping crond:                                            [  OK  ]
$ ./cronstatus.php 
3

$ sudo service crond start
Starting crond:                                            [  OK  ]
$ ./cronstatus.php 
0

この関数は、execコマンドの出力を変数として返すことができる$outだけでなく、で実行したコマンドによって返された状態結果も返すことができます$ret

おすすめ記事