我的SSI #exec输出被截断了

时间:2015-03-04 19:33:02

标签: apache ssi

我正在使用Apache的(2.4)include_module来构建一些简单的网页来输出正在运行的系统的状态。例如,一个页面包含HTML片段:

                <pre>
<!--#exec cmd="ps ax" -->
                </pre>

应该并且确实将 ps 命令的输出放在页面上。然而,它是一个相当大的列表,它的最后一部分被切断。显示的部分长约9000个字符。

我无法找到有关SSI命令的输出限制的任何文档。有人可以告诉我这里发生了什么吗?

更新:看看&#34;限制&#34;我将命令更改为 cat joonk.txt 并用大量文本填充该文件。似乎没有限制 您可以输出多少文本并显示。

但是我发现输出对内容非常敏感。 ps 命令包含输出:

4306 tty7     S<s+   9:59 /usr/bin/X -nolisten tcp :0 -auth /tmp/serverauth.sjfX0yR4qj

并且输出总是在&#34; S&#34;之后停止。 &#34;&lt;&#34;以后的角色不输出。无论是通过 ps 命令还是 cat 命令输出,都是如此。所以它看起来像是XML / HTML标记的开头。

所以我正在改变我的问题 - 如何阻止所包含的文本被解释? pre 标记显然不会这样做。

1 个答案:

答案 0 :(得分:0)

我习惯使用的解决方案是过滤输出以转义HTML特殊字符。而不是

ps ax

我用

ps ax | sed -e 's~&~\&amp;~g' -e 's~<~\&lt;~g'  -e  's~>~\&gt;~g’

脚注:似乎有 xmp 标记执行此操作并且受所有浏览器支持但在标准中已弃用。