【发布时间】:2015-03-02 15:06:54
【问题描述】:
我正在寻找一种方法来查看服务器中回显的历史记录。 我正在使用 GitHub webhook,当自动部署发生时,会执行一个带有 echo 的脚本。例如下面的代码:
<?php
try
{
$payload = json_decode($_REQUEST['payload']);
echo 'payload is received; ';
}
catch(Exception $e)
{
echo 'no payload; ';
exit(0);
}
if ($payload->ref === 'refs/heads/development')
{ echo 'received updated in dev branch; bash/deploy_frontend2dev.sh ';
exec('sh /var/www/html/bash/deploy_frontend2dev.sh', $output);
var_dump($output);
}
else
echo 'smth is called';
我知道您可以使用$ history 查看命令的历史记录,但是当我这样做时,它不会显示已回显的文本,而只会显示已运行的命令。反正有看吗?此外,如果您注意到代码中有一个var_dump,它也会打印到屏幕上。
顺便说一句,发生在 PHP 脚本中的 exec 就是这样做的:
cd /var/www/html/ezmob-frontend/;
git pull origin development;
echo "pulling file from dev branch";
rm -R ../dashboard;
echo "dashboard is updated";
unzip ezmob-frontend-built.zip -d ../;
chmod 777 -R dashboard;
这也应该回显一些文本,但没有显示任何内容。
【问题讨论】:
-
如果您从命令行运行,您可以写入如下文件:
php file.php > output.txt。这会将所有输出写入output.txt供您稍后阅读(或发送电子邮件)。您也可以使用脚本的exec()部分来执行此操作。 -
我知道现在全小写被认为是时尚的,至少在某些方面是这样。但是,我们喜欢这里写得好且易于阅读的问题,所以如果您偶尔可以使用 Shift 键,我们将不胜感激 - 并且可以为编辑节省一些工作。
-
我该怎么做?我应该在哪里写什么命令?