TOPAS에서 스냅샷을 찍는 스크립트는 다음과 같습니다.
#!/usr/bin/bash
whoami
export TERM="xterm"
(sleep 3; echo q)| topas -Emi 2 | \
tr -d '\r' | \
sed 's/\'$'\033''\[[0-9][0-9]G/ /g' | \
sed 's/'$'\033''/\'$'\n''/g' | \
grep -e '^en' -e '^lo' -e '^Network' | \
awk '{ printf("%-8s%10s%10s%10s\n", $1,$2,$5,$6); }' | \
cat
...특수 문자를 제거하여 bash 터미널 내에서 매우 좋은 결과를 얻었습니다.
root
Network KBPS KB-In KB-Out
lo0 3652.9 1826.0 1826.9
en1 2133.4 2109.0 24.4
en2 0.1 0.1 0.0
en0 0.0 0.0 0.0
그러나 나는 그것을 내 관리 사이트에 간단히 표시하고 싶습니다:
<?php header('Content-type: text/plain'); echo `myscript.sh`; ?>
그러나 네트워크 결과는 끔찍합니다(네트워크 인터페이스가 표시되지 않음).
apache
Network KBPS KB-In KB-Out
SUID 비트를 래핑하고 "루트"로 실행하려고 해도 도움이 되지 않았습니다. 동일한 문제가 여전히 존재합니다. 그래서 저는 그것이 특권 문제라고 생각하지 않습니다. 아마도 이는 TERMINAL의 TOPAS 동작과 관련이 있을 수 있습니다(이를 구현하려면 $TERM이 어떤 터미널이어야 하는지 확실하지 않음).
누구든지 단서가 있습니까?