PDA

Bekijk Volledige Versie : account ruimte (disc usage)



bastingse
08/06/13, 10:07
Mijn users (klanten) krijgen geen toegang tot direct admin, simpelweg omdat ik dat niet wil. Ze gebruiken het niet, maar sommige willen er wel in rotzooien. Anyway, als ik een user aanmaak van b.v. 500 mb, dan wil ik deze klant wel via een scriptje kunnen laten zien hoeveel MB hij in gebruik heeft.
Ik gebruik onderstaand scriptje maar dit laat de waardes zien van de gehele server i.p.v. alleen die user. Iemand een oplossing?



<?php

/* get disk space free (in bytes) */
$df = disk_free_space("/home/username/domains/domeinnaam.nl/");
/* and get disk space total (in bytes) */
$dt = disk_total_space("/home/username/domains/domeinnaam.nl/");
/* now we calculate the disk space used (in bytes) */
$du = $dt - $df;
/* percentage of disk used - this will be used to also set the width % of the progress bar */
$dp = sprintf('%.2f',($du / $dt) * 100);

/* and we formate the size from bytes to MB, GB, etc. */
$df = formatSize($df);
$du = formatSize($du);
$dt = formatSize($dt);

function formatSize( $bytes )
{
$types = array( 'B', 'KB', 'MB', 'GB', 'TB' );
for( $i = 0; $bytes >= 1024 && $i < ( count( $types ) -1 ); $bytes /= 1024, $i++ );
return( round( $bytes, 2 ) . " " . $types[$i] );
}

?>
<style type='text/css'>

.progress {
border: 2px solid #5E96E4;
height: 32px;
width: 540px;
margin: 30px auto;
}
.progress .prgbar {
background: #A7C6FF;
width: <?php echo $dp; ?>%;
position: relative;
height: 32px;
z-index: 999;
}
.progress .prgtext {
color: #286692;
text-align: center;
font-size: 13px;
padding: 9px 0 0;
width: 540px;
position: absolute;
z-index: 1000;
}
.progress .prginfo {
margin: 3px 0;
}

</style>

<div class='progress'>
<div class='prgtext'><?php echo $dp; ?>% Disk Used</div>
<div class='prgbar'></div>
<div class='prginfo'>
<span style='float: left;'><?php echo "$du of $dt used"; ?></span>
<span style='float: right;'><?php echo "$df of $dt free"; ?></span>
<span style='clear: both;'></span>
</div>
</div>

JelleDL
08/06/13, 10:18
Ik zou hiervoor een scriptje maken dat de mappen van de gebruiker berekend adhv een script zoals 'du', dit resultaat zou ik ergens wegschrijven want kan wel even duren om te berekenen (bv een db) en periodiek laten updaten.

Bv

'du /var/home/gebruiker/ -sh'

Vervolgens is het kinderspel om de waardes aan de klanten te geven.. Of denk ik te complex?

cfmweb
08/06/13, 10:22
Tja, er lijkt me weinig mis mee. Ben je ingelogd als user?

Misschien kun je anders een custom template maken waar je alles uit sloopt wat je niet wilt laten zien.

bastingse
08/06/13, 10:23
Dank voor je snelle reactie ! Ikzelf heb bovenstaand niet geschreven, heb het ergens op het www geplukt omdat ik zelf geen scripter ben en daar de 'ballen' verstand van heb :-)
Ik wil niet met een DB gaan werken, het script moet kwestie van upload zijn en klaar.

Als iemand zoiets kan schrijven voor me tegen een gepaste vergoeding.... ??

- - - Updated - - -


Tja, er lijkt me weinig mis mee. Ben je ingelogd als user?

Nee, dat is het probleem juist, mijn users krijgen geen login gegevens, dat wil ik niet.

ps: bovenstaand script doe ik dus uploaden bij ieder domein!

bastingse
08/06/13, 10:30
Misschien kun je anders een custom template maken waar je alles uit sloopt wat je niet wilt laten zien.

ha, daar had ik ook al aan gedacht, en dan die bewuste user die template toewijzen. Maar ja, bij een update van DA........ dus als het eenvoudiger kan met een scriptje.....

t.bloo
08/06/13, 10:34
Voor iedere gebruiker en dan ook nog zo vaak op te roepen als ze willen wordt moeilijk. Dat gaat slecht werken want zo iets als DU kan minuten duren op grote directories.

Je kunt de waardes natuurlijk met de API uit DirectAdmin halen. Dat moet dan wel periodiek want je wilt niet het password van de API in een script zetten waar de klant bij kan.

Je kunt ook de system quotas uitlezen. Die geven een goed beeld, op de database ruimte na.

Eenvoudiger dan een uitgekleed template kunnen we het niet maken...

bastingse
08/06/13, 10:40
Eenvoudiger dan een uitgekleed template kunnen we het niet maken...

Volgens mij ben ik zelf te moeilijk aan het denken: Als ik een template doe aanpassen en rename, dan wordt die niet overschreven bij een DA update, opgelost volgens mij!!

Kan ik middels ftp ergens in die templates komen? Volgens mij alleen ssh.....

bastingse
08/06/13, 11:05
opgelost, tenminste..... enchanced gedownload, ga hem aanpassen en dan in de skinmanager uploaden.... hoop dat dit gaat werken.
Thanks voor het mee denken!