The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"просмотр удаленной linux из под php"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Разное / Linux)
Изначальное сообщение [ Отслеживать ]

"просмотр удаленной linux из под php"  +/
Сообщение от ScoobyMax email(ok) on 14-Июл-10, 09:34 
Задача состоит в том чтобы с сайта находящегося на одной машине просмотреть размеры определенных папок находящихся на другой машине(Linux), подскажите как это можно реализовать

обзор папок на локальной машине у меня организован след. образом


function MySize($path,$mod){
    static $sum = 0;
    $col = '#ffffff';
    if ($mod==0) {
    $str = exec('du -bcS ' . $path);
        $str = substr($str, 0,strlen($str)-6);
    $str = round($str/(1024*1024),2);
        $sum += $str;
    echo "<tr><td>".$path.' </td><td align=right> '.$str.' Mb</td></tr>';
    }
    if ($mod==1) echo '<tr><td><b>Summa </td><td align=right><b> '.$sum.' Mb</td></tr>';
}
//////////////////////////////////////////////////////////////////////////////

echo '<font size=4><table border=1>';
    foreach(glob($myDir.'*') as $work){
    MySize($work);
    }
    MySize('/var/lib/mysql',0);
    MySize('/var/squirrelmail',0);
    MySize('',1);
echo '</table></font>';


Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "просмотр удаленной linux из под php"  +/
Сообщение от Zl0 (ok) on 14-Июл-10, 11:39 
сделать наверное ssh ключик для user@host,
может в судо еще добавить придеться.


function MySize($path,$mod, $host){
    static $sum = 0;
    $col = '#ffffff';
    if ($mod==0) {
    $str = exec('ssh user@'.$host. '-x "du -bcS' .$path.'"');
        $str = substr($str, 0,strlen($str)-6);
    $str = round($str/(1024*1024),2);
        $sum += $str;
    echo "<tr><td>".$host.':'.$path.' </td><td align=right> '.$str.' Mb</td></tr>';
    }
    if ($mod==1) echo '<tr><td><b>Summa </td><td align=right><b> '.$sum.' Mb</td></tr>';
}

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "просмотр удаленной linux из под php"  +/
Сообщение от mef (ok) on 14-Июл-10, 12:47 
В php есть специальные функции для этого:
disk_free_space и disk_total_space
Пример.
$size = disk_free_space("/var");
$unit = array('b', 'Kb', 'Mb', 'Gb', 'Tb', 'Pb', 'Eb', 'Zb', 'Yb');
$size=round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $unit[$i];
echo $size;

(виноват, это, для локальной машины)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "просмотр удаленной linux из под php"  +/
Сообщение от Zl0 (ok) on 14-Июл-10, 12:50 
>В php есть специальные функции для этого:
>disk_free_space и disk_total_space
>Пример.
>$size = disk_free_space("/var");
>$unit = array('b', 'Kb', 'Mb', 'Gb', 'Tb', 'Pb', 'Eb', 'Zb', 'Yb');
>$size=round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $unit[$i];
>echo $size;

На локальном разделе сработает, а удаленный как этой функции подсунуть?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "просмотр удаленной linux из под php"  +/
Сообщение от CyberMax on 14-Июл-10, 12:57 
>>В php есть специальные функции для этого:
>>disk_free_space и disk_total_space
>>Пример.
>>$size = disk_free_space("/var");
>>$unit = array('b', 'Kb', 'Mb', 'Gb', 'Tb', 'Pb', 'Eb', 'Zb', 'Yb');
>>$size=round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $unit[$i];
>>echo $size;
>
>На локальном разделе сработает, а удаленный как этой функции подсунуть?

Записать результаты в файл или в БД, а с удаленной тогда можно будет получать результаты из БД или файла.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "просмотр удаленной linux из под php"  +/
Сообщение от Zl0 (ok) on 14-Июл-10, 13:02 
>Записать результаты в файл или в БД, а с удаленной тогда можно
>будет получать результаты из БД или файла.

Т.е предполагается, чтобы узнать размер папки на удаленном хосте, нужно чтобы удаленный хост сначало подготовил эти результаты? А если там все часто меняется, а я запрашиваю, а результаты уже устарели? Тогда нужно чаще запускать, что-то там чтобы оно мне подготавливало, дергало базу, или на худой конец файл. Не логичнее чтобы оно считалось в только в тот момент, и только то количество раз когда мне нужны результаты?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "просмотр удаленной linux из под php"  +/
Сообщение от mef (ok) on 14-Июл-10, 13:44 
>>Записать результаты в файл или в БД, а с удаленной тогда можно
>>будет получать результаты из БД или файла.
>
>Т.е предполагается, чтобы узнать размер папки на удаленном хосте, нужно чтобы удаленный
>хост сначало подготовил эти результаты? А если там все часто меняется,
>а я запрашиваю, а результаты уже устарели? Тогда нужно чаще запускать,
>что-то там чтобы оно мне подготавливало, дергало базу, или на худой
>конец файл. Не логичнее чтобы оно считалось в только в тот
>момент, и только то количество раз когда мне нужны результаты?

А еще есть такая вещь как snmp.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

8. "просмотр удаленной linux из под php"  +/
Сообщение от Zl0 (ok) on 14-Июл-10, 13:50 
>[оверквотинг удален]
>>>будет получать результаты из БД или файла.
>>
>>Т.е предполагается, чтобы узнать размер папки на удаленном хосте, нужно чтобы удаленный
>>хост сначало подготовил эти результаты? А если там все часто меняется,
>>а я запрашиваю, а результаты уже устарели? Тогда нужно чаще запускать,
>>что-то там чтобы оно мне подготавливало, дергало базу, или на худой
>>конец файл. Не логичнее чтобы оно считалось в только в тот
>>момент, и только то количество раз когда мне нужны результаты?
>
>А еще есть такая вещь как snmp.

Это самый кошерный вариант.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "просмотр удаленной linux из под php"  +/
Сообщение от mef (ok) on 14-Июл-10, 13:00 
>>В php есть специальные функции для этого:
>>disk_free_space и disk_total_space
>>Пример.
>>$size = disk_free_space("/var");
>>$unit = array('b', 'Kb', 'Mb', 'Gb', 'Tb', 'Pb', 'Eb', 'Zb', 'Yb');
>>$size=round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $unit[$i];
>>echo $size;
>
>На локальном разделе сработает, а удаленный как этой функции подсунуть?

$str=exec("/полный путь/./php my.php")

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

9. "просмотр удаленной linux из под php"  +/
Сообщение от ScoobyMax email(ok) on 15-Июл-10, 05:45 
>[оверквотинг удален]
>>>disk_free_space и disk_total_space
>>>Пример.
>>>$size = disk_free_space("/var");
>>>$unit = array('b', 'Kb', 'Mb', 'Gb', 'Tb', 'Pb', 'Eb', 'Zb', 'Yb');
>>>$size=round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $unit[$i];
>>>echo $size;
>>
>>На локальном разделе сработает, а удаленный как этой функции подсунуть?
>
>$str=exec("/полный путь/./php my.php")

Этот вариант не подходт, мне нужно знать конкретно сколько каждая папка места занимает

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

10. "просмотр удаленной linux из под php"  +/
Сообщение от ScoobyMax email(ok) on 15-Июл-10, 05:45 
>[оверквотинг удален]
>    $str = exec('ssh user@'.$host. '-x "du -bcS' .$path.'"');
>
>        $str = substr($str, 0,strlen($str)-6);
>
>    $str = round($str/(1024*1024),2);
>        $sum += $str;
>    echo "<tr><td>".$host.':'.$path.' </td><td align=right> '.$str.' Mb</td></tr>';
>    }
>    if ($mod==1) echo '<tr><td><b>Summa </td><td align=right><b> '.$sum.' Mb</td></tr>';
>}

А вот это отличный вариант, спасибо, буду проверять щас
....
Из шела работает а из РНР не хочет, будем разбираться

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

11. "просмотр удаленной linux из под php"  +/
Сообщение от ScoobyMax email(ok) on 15-Июл-10, 09:17 
>А вот это отличный вариант, спасибо, буду проверять щас
>....
>Из шела работает а из РНР не хочет, будем разбираться

Есть какие нибудь мысли, варианты?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

12. "просмотр удаленной linux из под php"  +/
Сообщение от Zl0 (ok) on 15-Июл-10, 11:25 
>>А вот это отличный вариант, спасибо, буду проверять щас
>>....
>>Из шела работает а из РНР не хочет, будем разбираться
>
>Есть какие нибудь мысли, варианты?

Возможно что у apache нет прав запускать ssh

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

13. "просмотр удаленной linux из под php"  +/
Сообщение от ScoobyMax email(ok) on 16-Июл-10, 08:38 
>>>А вот это отличный вариант, спасибо, буду проверять щас
>>>....
>>>Из шела работает а из РНР не хочет, будем разбираться
>>
>>Есть какие нибудь мысли, варианты?
>
>Возможно что у apache нет прав запускать ssh

подскажите где и как разрешить

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

14. "просмотр удаленной linux из под php"  +/
Сообщение от Zl0 (ok) on 16-Июл-10, 11:41 
>>>>А вот это отличный вариант, спасибо, буду проверять щас
>>>>....
>>>>Из шела работает а из РНР не хочет, будем разбираться
>>>
>>>Есть какие нибудь мысли, варианты?
>>
>>Возможно что у apache нет прав запускать ssh
>
>подскажите где и как разрешить

man sudoers

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

15. "просмотр удаленной linux из под php"  +/
Сообщение от ScoobyMax email(ok) on 16-Июл-10, 11:50 
нашел под каким пользоваелем выполняется Apache, добавил этого пользователя в ssh. Попробывал из под этого пользователя в рузную выполнить команду ssh написало
connct to host 192.x.x.x port 22: No route to host

при этом пинг проходит
добавил строку в sudoers

user ALL=(root) NOPASSWD: ssh *

тоже не помогло

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

16. "просмотр удаленной linux из под php"  +/
Сообщение от mef (ok) on 16-Июл-10, 13:07 
>нашел под каким пользоваелем выполняется Apache, добавил этого пользователя в ssh. Попробывал
>из под этого пользователя в рузную выполнить команду ssh написало
>connct to host 192.x.x.x port 22: No route to host
>
>при этом пинг проходит
>добавил строку в sudoers
>
>user ALL=(root) NOPASSWD: ssh *
>
>тоже не помогло

Рекомендую Вам разобраться с snmp. Как разберетесь можно будет не только на linux размер проверять. А PHP умеет работать с snmp. Кроме этого можно собственные MIB создавать.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

17. "просмотр удаленной linux из под php"  +/
Сообщение от ScoobyMax email(ok) on 16-Июл-10, 13:48 
>Рекомендую Вам разобраться с snmp. Как разберетесь можно будет не только на
>linux размер проверять. А PHP умеет работать с snmp. Кроме этого
>можно собственные MIB создавать.

на сколько я понял это будет работать для открытых в общий доступ каталогов?
Тогда этот вариант не подходит...

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру