我从 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 位并设法以“root”身份运行它并没有帮助,同样的问题仍然存在。所以我认为这不是一个特权问题。也许这与 TERMINAL 的 TOPAS 行为有关(不确定 $TERM 应该是什么终端来实现这种情况)
有人有线索吗?