Avatar billede styrk Nybegynder
21. september 2007 - 19:22 Der er 6 kommentarer og
1 løsning

parsing af ps aux

hejsa..

nogen som kender en metode til at parse alt outputte fra "ps aux" i php?

links/artikler/ide'er er helt iorden ;-)
Avatar billede styrk Nybegynder
21. september 2007 - 19:43 #1
kunne da lige poste hvordan ps aux ser ud:

USER      PID %CPU %MEM  VSZ  RSS TTY      STAT START  TIME COMMAND
root        1  0.0  0.1  1496  520 ?        S    Sep03  0:05 init [2] 
root        2  0.0  0.0    0    0 ?        SN  Sep03  0:00 [ksoftirqd/0]
root        3  0.0  0.0    0    0 ?        S<  Sep03  0:03 [events/0]
root        4  0.0  0.0    0    0 ?        S<  Sep03  0:00 [khelper]
root        5  0.0  0.0    0    0 ?        S<  Sep03  0:00 [kacpid]
root        33  0.0  0.0    0    0 ?        S<  Sep03  0:00 [kblockd/0]
root        43  0.0  0.0    0    0 ?        S    Sep03  0:01 [pdflush]
root        44  0.0  0.0    0    0 ?        S    Sep03  0:00 [pdflush]
root        46  0.0  0.0    0    0 ?        S<  Sep03  0:00 [aio/0]
root        45  0.0  0.0    0    0 ?        S    Sep03  0:00 [kswapd0]
root      188  0.0  0.0    0    0 ?        S    Sep03  0:00 [kseriod]
root      294  0.0  0.0    0    0 ?        S    Sep03  0:00 [kjournald]
root      625  0.0  0.0    0    0 ?        S<  Sep03  0:00 [kmirrord/0]
root      641  0.0  0.0    0    0 ?        S    Sep03  0:00 [kjournald]
root      642  0.0  0.0    0    0 ?        S    Sep03  0:00 [kjournald]
root      643  0.0  0.0    0    0 ?        S    Sep03  0:00 [kjournald]
Avatar billede hmortensen Nybegynder
21. september 2007 - 20:00 #2
Du kan prøve flg.:
$entries = explode("\n", $str);
foreach ($entries as $entry)
{
    if (strlen(trim($entry)) > 0)
        print_r(split("[ ]+", $entry));
}
Avatar billede styrk Nybegynder
21. september 2007 - 20:03 #3
holda op.. det er sku godt gået ;D

Array
(
    [0] => USER
    [1] => PID
    [2] => %CPU
    [3] => %MEM
    [4] => VSZ
    [5] => RSS
    [6] => TTY
    [7] => STAT
    [8] => START
    [9] => TIME
    [10] => COMMAND
)
Array
(
    [0] => root
    [1] => 1
    [2] => 0.0
    [3] => 0.1
    [4] => 1496
    [5] => 520
    [6] => ?
    [7] => S
    [8] => Sep03
    [9] => 0:05
    [10] => init
    [11] => [2]
    [12] =>
)
Array
(
    [0] => root
    [1] => 2
    [2] => 0.0
    [3] => 0.0
    [4] => 0
    [5] => 0
    [6] => ?
    [7] => SN
    [8] => Sep03
    [9] => 0:00
    [10] => [ksoftirqd/0]
)
Array
(
    [0] => root
    [1] => 3
    [2] => 0.0
    [3] => 0.0
    [4] => 0
    [5] => 0
    [6] => ?
    [7] => S<
    [8] => Sep03
    [9] => 0:03
    [10] => [events/0]
)
Array
(
    [0] => root
    [1] => 4
    [2] => 0.0
    [3] => 0.0
    [4] => 0
    [5] => 0
    [6] => ?
    [7] => S<
    [8] => Sep03
    [9] => 0:00
    [10] => [khelper]
)
Array
(
    [0] => root
    [1] => 5
    [2] => 0.0
    [3] => 0.0
    [4] => 0
    [5] => 0
    [6] => ?
    [7] => S<
    [8] => Sep03
    [9] => 0:00
    [10] => [kacpid]
)
Avatar billede styrk Nybegynder
21. september 2007 - 20:04 #4
Tror du det er muligt at få arrayet delt bedre op?
Avatar billede styrk Nybegynder
21. september 2007 - 20:19 #5
sådan at

Array
(
    0 = > Array ( USER = root,
osv osv),

    1 = > Array ( USER = root,
osv osv),

    2 = > Array ( USER = root,
osv osv);

... Kunne være rigtig fedt.. er igang selv ligen at forsøge mig :p
Avatar billede styrk Nybegynder
21. september 2007 - 20:27 #6
Det her ser rigtigt ud:

<?php
$entries = explode("\n", $contents);
$i = 0;
foreach ($entries as $entry)
{
    if (strlen(trim($entry)) > 0)
    {
            $arr[$i] = split("[ ]+", $entry);
            for ($s = 0; $s < 10; $s++)
            {
                $parsed[$i][USER] = $arr[$i][0];
                $parsed[$i][PID] = $arr[$i][1];
                $parsed[$i][CPU] = $arr[$i][2];
                $parsed[$i][MEN] = $arr[$i][3];
                $parsed[$i][START] = $arr[$i][8];
                $parsed[$i][TIME] = $arr[$i][9];
                $parsed[$i][COMMAND] = $arr[$i][10];
            }
    }
    $i++;
}

print_r($parsed);
?>

Tak..

smid et svar :-)
Avatar billede hmortensen Nybegynder
21. september 2007 - 20:43 #7
Der er jo mange muligheder, gav dig blot en start :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester