php - 从cron执行的php脚本表现得很奇怪
问题描述
我有一个 Centos 7 服务器。我有这个 php 脚本 ( conn.php ),它执行一个 shell 命令来计算 SMTP 连接的数量并将它们保存在 /usr/local/conn.txt
<?php
$conn=rtrim(shell_exec("ss -tn | egrep \":25 |:26 |:587 |:465 \" | egrep \"^ESTAB\" | awk '{print $4}' | egrep -c \":25|:26|:587|:465\" >> /usr/local/conn.txt " ));
?>
如果我从控制台执行脚本
/usr/local/cpanel/3rdparty/bin/php-cgi /usr/local/conn.php
它运行良好,并在 /usr/local/conn.txt 中保存了正确数量的 SMTP 连接。例如
15
24
56
34
12
但是如果我像这样设置一个根 cron 来每 2 分钟执行一次脚本
*/2 * * * * /usr/local/cpanel/3rdparty/bin/php-cgi /usr/local/conn.php
该脚本仅在 /usr/local/conn.txt 中保存一长串 0(每次 cron 执行时为零)
0
0
0
0
0
0
怎样才能避免这种情况?如果从根 cron 执行,为什么脚本不返回正确的值?
解决方案
推荐阅读
- sql - 如何优化查询以计算与行相关的日期时间关系?
- node.js - 抽头测试超时
- c# - Winform 图表 - 固定 X 轴
- reactjs - 如何使用axios调用GET api在BODY中发送数据?
- python - 迭代for循环时如何将多个系列(熊猫)添加在一起?
- javascript - 如何使用 Vuejs 进行 Onload 事件——特别是如何将脚本放入方法中以及在 html 中获取调用的方式
- javascript - 从多个选择下拉列表中获取选定的选项值
- angular - getComputedStyle() 是获取 Angular 中 css 设置样式的唯一方法吗?
- javascript - 在 JSON 的每个元素处推送不同的值
- php - 将“if”块中的变量传递给另一个 PHP 文件