Forum de discussions NFrance - Support offres dédiées et mutualisées
Vous n'êtes pas identifié.
Bonjour,
Je n'ai pas trouvé de sujet déjà traité dans les forums NFrance se rapportant à ma question.
J'aimerais savoir comment faire pour connaître la capacité utilisée sur la capacité totale offerte par l'hébergment Web1 ?
Dans les statistiques, je pensais trouver un "fromage" avec en vert (par exemple) la capacité allouée par Web1 et en rouge la capacité déjà utilisée par un site.
Merci par avance à toutes les personnes qui pourront me renseigner.
Bonne journée
Hors ligne
Bonjour,
a ma connaissance il n'existe pas d'outil de web1 permettant de connaitre l'espace disque occupé sur le site.
néanmoins, un membre avait codé (ou trouvé) il y a quelques temps déjà un script php permettant de connaitre cet espace utilisé (FTP + base de donnée).
il me semble avoir retrouvé ce code :
<?php
$HOSTNAME=""; //à renseigner
$USERNAME=""; //à renseigner
$PASSWORD=""; //à renseigner
$DATABASE=""; //à renseigner
$maxtaille =1024 * 2048 * 1024; //votre capacité en octets (ici 2Go)
$byteUnits = array('Octets', 'Ko', 'Mo', 'Go');
function PMA_formatByteDown($value, $limes = 6, $comma = 0)
{
$dh = pow(10, $comma);
$li = pow(10, $limes);
$return_value = $value;
$unit = $GLOBALS['byteUnits'][0];
if ($value >= $li*1000000) {
$value = round($value/(1073741824/$dh))/$dh;
$unit = $GLOBALS['byteUnits'][3];
}
else if ($value >= $li*1000) {
$value = round($value/(1048576/$dh))/$dh;
$unit = $GLOBALS['byteUnits'][2];
}
else if ($value >= $li) {
$value = round($value/(1024/$dh))/$dh;
$unit = $GLOBALS['byteUnits'][1];
}
if ($unit != $GLOBALS['byteUnits'][0]) {
$return_value = number_format($value, $comma,
$GLOBALS['number_decimal_separator'],
$GLOBALS['number_thousands_separator']);
} else {
$return_value = number_format($value, 0,
$GLOBALS['number_decimal_separator'],
$GLOBALS['number_thousands_separator']);
}
return array($return_value, $unit);
} // end of the 'PMA_formatByteDown' function
function rep($nom)
{
$nbTab=str_repeat("|----",substr_count($nom,"/"));
$nom1=eregi_replace("^[.][a-z0-9/ ]*/",$nbTab,$nom);
// echo "<TR><TD align=\"left\">$nom1</TD>";
global $nbre;
global $tailletot;
$d = dir($nom);
$tailleRep=0;
$nbRep=0;
while($entry=$d->read())
{
$taille = filesize($nom . "/" . $entry);
$type = filetype($nom . "/" . $entry);
if ($type != "dir")
{
$tailletot = $tailletot + $taille;
$nbre = $nbre + 1;
$tailleRep+=$taille;
$nbRep++;
}
}
$d = dir($nom);
$tailleRep=number_format($tailleRep,'0',',',' ');
$nbRep=number_format($nbRep,'0',',',' ');
// echo "<TD align=\"right\">$tailleRep</TD>";
// echo "<TD align=\"right\">$nbRep</TD></TR>";
while($entry=$d->read())
{
$taille = filesize($nom . "/" . $entry);
$type = filetype($nom . "/" . $entry);
if ($type == "dir")
{
if ($entry != "." AND $entry != "..")
{
$reps[]=$nom . "/" . $entry;
}
}
}
if (isset($reps)) {
natcasesort($reps);
foreach ($reps as $v) {
rep($v);
}
}
//rep($nom . "/" . $entry);
}
$db = mysql_connect($HOSTNAME, $USERNAME , $PASSWORD );
mysql_select_db($DATABASE,$db);
$local_query = "SHOW TABLE STATUS FROM $DATABASE";
$result = mysql_query($local_query);
$nbTables=0;
if ($result != FALSE && mysql_num_rows($result) > 0) {
while ($sts_tmp = mysql_fetch_array($result)) {
$tables[] = $sts_tmp;
$nbTables++;
}
mysql_free_result($result);
}
?>
<TABLE cellspacing="20">
<TR><TH align="center" width="50%" valign="top">Base de données</TD>
<TH align="center" width="50%" valign="top">Espace disque</TD></TR>
<TR><TD valign="top">
<TABLE>
<TR>
<TH align="center">Table</TH><TH align="right" width="80">Données</TH>
<TH align="right" width="80">Index</TH><TH align="right" width="80">Total</TH>
</TR>
<?php
$td=0;
$ti=0;
$s_tot=0;
while (list($keyname, $sts_data) = each($tables)) {
list($sd,$sd_u)=PMA_formatByteDown($sts_data['Data_length'],3,1);
$sd="$sd $sd_u";
$td+=$sts_data['Data_length'];
list($si,$si_u)=PMA_formatByteDown($sts_data['Index_length'],3,1);
$si="$si $si_u";
$ti+=$sts_data['Index_length'];
list($sum,$sum_u)=PMA_formatByteDown(
$sts_data['Data_length']+$sts_data['Index_length'],3,1);
$sum= "$sum $sum_u";
// echo "<TR><TD>".$sts_data['Name']."</TD><TD align='right'>$sd</TD>";
// echo "<TD align='right'>$si</TD><TD align='right'>$sum</TD></TR>";
}
$ts=$td+$ti;
$s_tot=$ts;
list($td,$td_u)=PMA_formatByteDown($td,3,1);
$td="$td $td_u";
list($ti,$ti_u)=PMA_formatByteDown($ti,3,1);
$ti="$ti $ti_u";
list($ts,$ts_u)=PMA_formatByteDown($ts,3,1);
$ts="$ts $ts_u";
echo "<TR><TD>Total</TD><TD align='right'>$td</TD><TD align='right'>$ti</TD>";
echo "<TD align='right'>$ts</TD></TR>";
?>
</TABLE>
</TD><TD width="50%">
<TABLE cellpadding="0" cellspacing="0">
<pre>
<TABLE border="0" cellspacing="0">
<TR><TH align="center">Répertoire</TH>
<TH align="right" width="80">Taille</TH>
<TH align="right" width ="60">Fichiers</TH></TR>
<?php
$d = dir("");
global $nbre;
global $tailletot;
$nbre = 0;
$tailletot = 0;
rep("../");
?>
</TABLE>
<?php
$temp1 = number_format($nbre,'0',',',' ');
$temp2 = number_format($tailletot,'0',',',' ');
echo "<BR>J'ai trouvé $temp1 fichiers d'une taille totale de $temp2 octets.<br>";
$temp1 = number_format($maxtaille - $tailletot,'0',',',' ');
echo "<BR>Il vous reste $temp1 octets.<BR><BR>";
$s_tot+=$tailletot;
$s_libre=$maxtaille - $s_tot;
list($s_tot,$s_tot_u)=PMA_formatByteDown($s_tot,3,1);
$s_tot="$s_tot $s_tot_u";
list($s_libre,$s_libre_u)=PMA_formatByteDown($s_libre,3,1);
$s_libre="$s_libre $s_libre_u";
?>
</TD></TR>
<TR><TD colspan="2" align="center">
<B>
Espace utilisé : <?php echo $s_tot; ?><BR>
Espace libre : <?php echo $s_libre; ?>
</B>
</TD></TR></TABLE>
</div>voila ...
Thomas
Hors ligne
Bonjour,
Formidable, c'est justement ce que je cherche. ![]()
J'ai donc essayé en collant ce code dans une page web. Je pense avoir correctement informé les lignes concernant la base de données et effectivement, pour la base de donnée, j'obtiens une réponse correcte, puisque je ne l'utilise pas. L'espace occupé est de l'ordre de 7Ko.
Par conctre pour l'espace disque, j'ai ceci :
Warning: dir(../) [function.dir]: failed to open dir: Permission denied in /home/XXXXXXX/A_Espace_disponible.php on line 64
Fatal error: Call to a member function on a non-object in /home/XXXXX/A_Espace_disponible.php on line 67
Répertoire Taille Fichiers
(Les XXXXX sont la pour masquer des infos privées)
En ligne 64, le fichier ouvert avec notepad contient : $d = dir($nom);
En ligne 67 il ya le début d'une boucle while : while($entry=$d->read())
Mais je ne sais que faire car hélas je ne connais pas le php. ![]()
S'agit il d'un problème php mal programmé ou de droit d'accès de type chmod ?
Merci d'avance en cas de réponse.
Cordialement
Gilletarom.
Hors ligne
Bonsoir,
c'est étrange car la seule configuration que j'ai eu à faire concerne la base de donnée...
j'ai copier-coller le script que j'ai donné, renseigné la base de donnée, placé le fichier sur le serveur et exécuté le script, ça prend du temps (car 70 000 fichiers et 200Mo de base de donnée), mais ça fonctionne ...
si par hasard vous placez le script dans un répertoire (ce que j'ai fait) et pas directement à la racine, ça fonctionne ?
si oui il doit y avoir une ligne dans le script qui indique qu'il faut compter à partir du répertoire parent, et si le fichier est à la racine, il n'aurais pas les autorisations d'aller voir plus bas... (supposition ...)
et effectivement, ça doit être ça :
près de la ligne 171, il y a ceci :
rep("../");si vous mettez ceci :
rep("");ou bien
rep("/");ça devrait fonctionner ...
en fait, tout dépend la référence et ou vous placez le script ... il faut que le contenu de rep() pointe vers la racine de votre hébergement et pas plus bas (plantage) ni plus haut (vous prendriez pas en compte tous les fichiers)
Thomas
Hors ligne
Bonsoir,
Thomas.Maillard a écrit:
Bonsoir,
ça devrait fonctionner ...
Thomas
Merci. C'est OK. Il faut le mettre dans un répertoire. sous la racine.
Cordialement
Gilletarom
Hors ligne
Merci Thomas pour ces informations et bravo Gilletarom pour votre savoir-faire !
Je dois reconnaître que tout cela est bien au-dessus de mes connaissances
mais ça va m'obliger à progresser !
Je vais donc prendre ligne par ligne et essayer de comprendre ... mais c'est pas gagné !
Bonne soirée !
Niky
Hors ligne
Je trouve dommage que nfrance ne propose pas ce genre d'outil, comme pour connaitre aussi le trafic de son site.
J'avoue qu'en m'abonnant ici, je pensais avoir un panneau d'administration plus complet. ![]()
Exemple tout simple :
Dernière modification par Jaguar (09-01-2008 05:51:45)
Hors ligne