Скриптом php вывести результат команды top

J
На сайте с 08.06.2006
Offline
844
555

как?

пробовал

function run($cmd)

{
exec(trim($cmd).' 2>&1', $ret);
return $ret;
}

$out = run('top');

var_dump($out);

получил

array(1) { [0]=> string(34) "TERM environment variable not set." }
LEOnidUKG
На сайте с 25.11.2006
Offline
1730
#1

Нельзя т.к. exec запрещён на 99% хостингах и серверах и правильно сделано.

Лучше написать какой-нибудь скрипт на сервере и по крону снимать значения но уже от рута.

А PHP чтобы просто считывало из текстового файлика например.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
lealhost
На сайте с 07.06.2014
Offline
136
#2

Нельзя не потому что exec запрещен, а потому что для вызова top в таком виде требуется терминал tty.

A
На сайте с 04.11.2007
Offline
129
#3
joost:
как?

ob_start();

passthru( '/usr/bin/top -b -n 1' );
$result = ob_get_clean();
ob_clean();

echo'<pre>';print_r($result);
LEOnidUKG
На сайте с 25.11.2006
Offline
1730
#4

Аха, и кто же passthru будет разрешать? :)

A
На сайте с 04.11.2007
Offline
129
#5

LEOnidUKG, не смог найти где её запрещают. disable_functions?

Мне сама идея понравилась. Прикрутил к выше скрипту строчку header( 'Refresh:10' ); и наслаждаюсь 🍿

LEOnidUKG
На сайте с 25.11.2006
Offline
1730
#6
disable_functions?

Именно там.

A
На сайте с 04.11.2007
Offline
129
#7

Так это секундное дело её убрать и рестартнуть. Ну не будет человек рут команды запускать не имея рута.

#2 без passthru

exec( '/usr/bin/top -b -n 1', $result );

$result = implode( "\r\n", $result );

echo'<pre>';print_r($result);
LEOnidUKG
На сайте с 25.11.2006
Offline
1730
#8

asteroid, :D чукча не читатель, чукча писатель.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий