我想发出警告如果cron没有运行或者我的服务器上的crontab中没有设置某个cronjob.
这有可能用PHP检查吗?
解决方法:
您可以解析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
注意:您可以使用PHP中的system()
function来调用命令行工具或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