freevis

Gesponsorde koppelingen

PHP script bestanden

  1. freevis

« Lees de omschrijving en reacties

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<html>
<head>
<title>FreeVis 0.2.1</title>
</head>
<body bgcolor="#FFFAAA">
<b>FreeVis 0.2.1</b><br>
<i>By JoRRiZZa</i><br><br>

<?php
//laat beschikbare geheugen zien dmv procps free
//
//http://procps.sourceforge.net/
//
//niet rechtstreeks via fread van het /proc systeem
//want dat werkt schijnbaar niet altijd
//dit werkt altijd

//data extraheren uit de output, en maak hem bruikbaar
//ik overdrijf een beetje met de str_replace
//maar dat komt omdat de output van free -o
//niet altijd het zelfde is. Dus vandaar...

$free = shell_exec('free -o');
$free = str_replace('Mem:', '', $free);
$free = str_replace('Swap:', '', $free);
$free = str_replace("\r", '', $free);
$free = str_replace("\n", '', $free);
$free = str_replace(' ', '-', $free);
$free = str_replace(' ', '-', $free);
$free = str_replace(' ', '-', $free);
$free = str_replace(' ', '-', $free);
$free = str_replace(' ', '-', $free);
$free = str_replace(' -', '-', $free);
$free = str_replace('- ', '-', $free);
$free = str_replace('--', '-', $free);
$free = str_replace('--', '-', $free);
$free = str_replace('--', '-', $free);
$free = str_replace('--', '-', $free);
$free = str_replace('--', '-', $free);
$free = str_replace('--', '-', $free);
$free = str_replace('--', '-', $free);
$free = str_replace('-total-used-free-shared-buffers-cached-', '', $free);
$free_array = explode('-', $free);
$mem_tot = $free_array[0];
$mem_use = $free_array[1];
$swp_tot = $free_array[6];
$swp_use = $free_array[7];

//procenten
if ($mem_tot != 0) {
   $mem_proc = round($mem_use/$mem_tot*100);
   }
else {
   $mem_proc = 0;
   }

if ($swp_tot != 0) {
   $swp_proc = round($swp_use/$swp_tot*100);
   }
else {
   $swp_proc = 0;
   }


//breedte balken berekenen
$breedte = 300;
$gekleurd_mem = $breedte/100*$mem_proc;
$ongekleurd_mem = $breedte-$gekleurd_mem;
$gekleurd_swp = $breedte/100*$swp_proc;
$ongekleurd_swp = $breedte-$gekleurd_swp;

//kleur bepalen
//groen onder de 80%, rood daarboven

if ($mem_proc <= 80) {
   $mem_kleur = 'green';
   }
else {
   $mem_kleur = 'red';
   }

if ($swp_proc <= 80) {
   $swp_kleur = 'green';
   }
else {
   $swp_kleur = 'red';
   }


//nu het tabelletje tekenen met de kleurtjes...
?>

<table border="0" cellpadding="0" cellspacing="0">
Memory: <?php echo $mem_use.'K/'.$mem_tot.'K'; ?><br>
<tr><td width="20"></td><td width="<?php echo $gekleurd_mem; ?>" bgcolor="<?php echo $mem_kleur; ?>"></td><td width="<?php echo $ongekleurd_mem; ?>" bgcolor="grey"></td><td><?php echo $mem_proc; ?>%</td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0">
Swap: <?php echo $swp_use.'K/'.$swp_tot.'K'; ?><br>
<tr><td width="20"></td><td width="<?php echo $gekleurd_swp; ?>" bgcolor="<?php echo $swp_kleur; ?>"></td><td width="<?php echo $ongekleurd_swp; ?>" bgcolor="grey"></td><td><?php echo $swp_proc; ?>%</td></tr>
</table>
<br>
<?php
//sinds v0.2 hebben we ook het uitlezen van het gebruik van de
//mountpoints.

//commando

$filesys = shell_exec('df');
//schoonmaken
$filesys = str_replace(' ', '-', $filesys);
$filesys = str_replace('--', '-', $filesys);
$filesys = str_replace('--', '-', $filesys);
$filesys = str_replace('--', '-', $filesys);
$filesys = str_replace('--', '-', $filesys);
$filesys = str_replace("Filesystem-1K-blocks-Used-Available-Use%-Mounted-on\n", '', $filesys);
//daadwerkelijk splijten
$filesys = split("\n", $filesys);
//functie per output-regel
$i = 0;
while ($i <= count($filesys)) {
      if ($filesys[$i] != "") {
         $data = explode('-', $filesys[$i]);
         //nu hebben we de data voor 1 mountpoint in een array
         $dev = $data[0];
         $blocks_tot = $data[1];
         $blocks_use = $data[2];
         $blocks_free = $data[3];
         $blocks_proc = str_replace('%', '', $data[4]);
         $mountpoint = $data[5];
         if ($dev != 'none' && $dev != 'tmpfs') {
            //breedte balken berekenen
            $breed = 300;
            $gekleurd = $breed/100*$blocks_proc;
            $ongekleurd = $breed-$gekleurd;
            //kleur bepalen
            if ($blocks_proc <= 80) {
               $kleur = 'green';
               }
else {
               $kleur = 'red';
               }

            //tekenen table
            echo 'Dev: '.$dev.' Mnt: '.$mountpoint.' '.$blocks_use.'/'.$blocks_tot.' Blocks<br>';
            echo '<table border="0" cellpadding="0" cellspacing="0">';
            echo '<tr><td width="20"></td><td width="'.$gekleurd.'" bgcolor="'.$kleur.'"></td><td width="'.$ongekleurd.'" bgcolor="grey"></td><td> '.$blocks_proc.'%</td></tr>';
            echo '</table>';
            }
         }

      $i++;
      }

?>

</body>
</html>

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.