<?php $cmd = "du -ch /home/vpopmail/domains/monDomaine.fr/|grep Maildir/new | grep "M\b"|mail -s "Taille des boites mail" mon@domaine.fr"; shell_exec("$cmd"); ?>
<?php $cmd = "du -ch /home/vpopmail/domains/monDomaine.fr/|grep Maildir/new | grep "M\b"|mail -s "Taille des boites mail" mon@domaine.fr"; echo shell_exec("$cmd"); ?>
Citation
sve@r
tu ouvres une balise spéciale "<SCRIPT language="php"> et ensuites tu écris ton code que tu termines par une balise "</SCRIPT>"
Je savais pas que c'était réservé aux scripts clients. Mais je sais que ça fonctionne quand-même pour PHPCitation
Morgan
La, je crois que tu confonds php et javascript :
le code php doit être placé entre des balises
<?php et ?> (ou à la rigueur <? ?>
mais cela n'est pas conseillé). La balise script
n'est utilisé que pour les langages qui
s'éxécutent coté client (comme javascript).
Citation
Morgan
Pour l'idée du bash qui s'éxécute périodiquement,
je n'y avais pas pensé, mais l'avantage du php (ou
autre langage éxécuté par le serveur) est qu'il
permet d'avoir le résultat voulu en temps réel: il
n'y a pas a attendre l'éxécution du cron ...
Citation
sve@r
C'est un choix qu'on peut proposer => a-t-on besoin de temps réel ou peut-on se contenter du traitement périodique ?
Citation
Morgan
oui oui, bien sur, ma remarque visait simplement à
bien montrer l'alternative.
Citation
William
Je vais également regarder du coté de Perl pour
savoir si cela ne peut pas coller
<?php $total = 0; $repertoire = "/home/vpopmail/domains/monDomaine.fr"; $masque = "*/Maildir/new"; // On récupére les répertoires correspondants au masque: $repsNew = glob($repertoire.$masque); // Pour chacun d'entre eux ... foreach ($repsNew as $rep) { // ... on récupére sa taille, ... ____$du = shell_exec("du -k $rep"); ____$du = explode("\t",$du); // ... on l'affiche ... ____echo "\n<br />$rep occupe $du Ko"; ____$total += $du; // ... et on l'ajoute au total. } echo "\n<br />La taille totale des dossiers est $total Ko"; ?>
Citation
Morgan
puisque la safe_mode est désactivé, en php, cela
pourrait te donner quelque chose dans ce genre
(j'ai supposé que le répertoire monDomaine.fr
contenait des sous répertoires correspondant
chacun à un compte user, cela explique le masque
"*/Maildir/new", à adapter si cela n'est pas le
cas):
<?php
$total = 0;
$repertoire =
"/home/vpopmail/domains/monDomaine.fr";
$masque = "*/Maildir/new";
// On récupére les répertoires correspondants au
masque:
$repsNew = glob($repertoire.$masque);
// Pour chacun d'entre eux ...
foreach ($repsNew as $rep) {
// ... on récupére sa taille, ...
____$du = shell_exec("du -k $rep");
____$du = explode("\t",$du);
// ... on l'affiche ...
____echo "\n<br />$rep occupe $du Ko";
____$total += $du; // ... et on l'ajoute au
total.
}
echo "\n<br />La taille totale des dossiers
est $total Ko";
?>
Ne tiens pas compte des _ en début de ligne, je
les mets pour simuler la tabulation.
__________________________________________________
_
L'interface chaise-clavier se débuggue elle
aussi...
Citation
William
Alors là je ne sais que dire si ce n'est MERCI.
Citation
William
Bon certe, cela ne fonctionne pas
// ... on l'affiche ... ____echo "\n<br />$rep occupe $du Ko"; ____$total += $du; // ... et on l'ajoute au total.
// ... on l'affiche ... ____echo "\n<br />$rep occupe $du[0] Ko"; ____$total += $du[0]; // ... et on l'ajoute au total.
Citation
William
Ne serait-ce pas lié à la version de php ?
Perso je suis en PHP 4.3.11
$repsNew = glob($repertoire.$masque); print_r($repsNew);