2015-03-04 2 views
0

Я использую Apache (2.4) include_module для создания некоторых простых веб-страниц для вывода состояния системы, в которой он работает. Например одна страница содержит фрагмент HTML:Мой выход SSI #exec получает усечение

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

который должен, и делает, поставил вывод пс команды на этой странице. Однако это довольно большой список, и последняя часть его обрезается. Часть, которая действительно отображается, составляет около 9000 символов.

Я не могу найти документацию об ограничении вывода для команд SSI. Может ли кто-нибудь посоветовать мне, что здесь происходит?

UPDATE: Чтобы узнать, что такое «предел», я изменил команду на cat joonk.txt и заполнил этот файл большим количеством текста. Кажется, что нет предела , сколько текста вы можете выводить и отображать.

Однако я обнаружил, что выход чувствителен к контенту. пс команда включает в себя вывод:

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

и выход всегда останавливается после «S». «<» и последующие символы не выводятся. Это верно независимо от того, выводится ли оно командой ps или командой cat. Таким образом, это похоже на начало тега XML/HTML.

Поэтому я меняю свой вопрос - как я могу прекратить интерпретацию включенного текста? Знак pre, по-видимому, этого не делает.

ответ

0

Решение, которое я использовал для этого, состояло в том, чтобы отфильтровать вывод, чтобы избежать специальных символов HTML. Таким образом, вместо

ps ax 

Я использую

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

Сноска: Кажется, что там был XMP тег, который делает это и поддерживается всеми браузерами, но не рекомендуется в стандартах.

Смежные вопросы