owncloud Quota

gallifrey

Grünschnabel
Hallo miteinader

Wie mein Titel es schon sagt habe ich ein Prblem mit Owncloud.
Nach langem suchen im Netz bin ich auf ein Script gestossen, das genau das macht was ich bruache, leider ist es ein Nagios Plugin
icon_sad.gif


Aber wenn ich den Code so anschaue solte es auch ohne Nagios gehen.

Habe das Script auf den Server geladen, der ordner wird angelegt aber er ist leer obwohl ich über 1TB Daten drauf habe mit 50 Usern.
Meine frage nun ist wie muss ich das Script anpassen das ich die ausgabe direkt über das Script machen kann
oder wie ich es hinkriege das ich im gesagten Order Daten habe.
Code:
 <?php
$username = "owncloud";
$password = "geheim:)";
$hostname = "localhost";
$database = "owncloud";
$location = "/var/www/owncloud/data/"; //Change this to the location where userdirs are located on your owncloud linux server

//connection to the database
$dbhandle = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
//select a database to work with
$selected = mysql_select_db($database, $dbhandle)
  or die("Could not select owncloud");
//execute the SQL query and return records
$allusers = mysql_query("select distinct userid from oc_preferences where configkey = 'firstLoginAccomplished' ;");
while ($row = mysql_fetch_array($allusers)) {
    $allus = $row{'userid'};

//check on disk to see directory size
    $dirname = $location.$allus;
    $io = popen ( '/usr/bin/du -sb' . $dirname, 'r' );
    $size = fgets ( $io, 4096);
    $sizecurb = substr ( $size, 0, strpos ( $size, "\t" ) );
    pclose ( $io );

// check if user has higher then default quota
$quota = mysql_query("select configvalue from oc_preferences where configkey = 'quota' and userid = '$allus' ;");
$actquot = mysql_fetch_array($quota);
//quota prolly in GB values, for nagios i want bytes
if (strpos($actquot{'configvalue'},'GB') !== false) {
    list($sizecur, $unit) = explode(" ", $actquot{'configvalue'});
    $maxquot = $sizecur * 1024 * 1024 * 1024;
}
//user has no custom quota, use the system default of 10 GB
else {
    $maxquot = 10 * 1024 * 1024 * 1024;
}

//print username, current usage in bytes, and the max available space in bytes
echo $allus ",".$sizecurb.",".$maxquot."
";

}

//close the connection
mysql_close($dbhandle);





?>

der Ordner wird in /tmp/ angelegt und heist owncloud-oce8e15c2ac5

Die logs spucken weder Errors noch irgend was nützliches aus.

Besten Dank im Voraus!
 
Zuletzt bearbeitet:
Hi,
ohne viel zu lesen vom Code, http://tut.php-quake.net/de/error.html deine echo in zeile 40 ist falsch richtig wäre
PHP:
echo $allus.",".$sizecurb.",".$maxquot."";

Poste bitte einmal, wenn du sie aktiviert hast, die display_errors.
Ich habe auch noch etwas gesehen, wird das hier von PHP verstanden? $row{'userid'} denn ich kenne es nur unter $row['userid'] Zeile 17

gruß
 
Hi ,
Danke für deine Antwort,ja das ist mir auch aufgefallen.
Ich habe jezt mal deinen Vorschlag umgesezt habe in der Zeile 17 geändert
Code:
//    $allus = $row{'userid'};
    $allus = $row['userid']
;

Dan erhalte ich einen Error:
Parse error: syntax error, unexpected '$dirname' (T_VARIABLE) in /var/www/owncloud/du.php on line 20

Die Zeile 40 habe ich auch geändert
Code:
//echo $allus.",".$sizecurb.",".$maxquot."
echo $allus.",".$sizecurb.",".$maxquot."";

Gruss
 
Hi ja das habe ich gesehn habe das noch hinzugefügt :)
Jezt bekomme ich keinen Error mehr aber der Ordner ist immer noch leer.
 
Wenn ich ja am schluss ein echo drin habe solte mir ja das Script anzeigen was es gemacht hat, oder sehe ich das falsch?
 
Genau aber er macht garnichts das finde ich sehr komisch.
Gibt es eine möglichkeit das ich irgend wie mit einem dump oder ein error log laufen lassen kann.Damit ich sehe was das Script macht ?
Den Error log habe ich schon eingeschaltet in der php.ini aber der sagt garnichts.
 
Für doch das hier mal bitte mit ein:
PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
?>

PHP müsste dir normalerweise ein Hinweis geben da du hier mysql nutzt und kein mysqli.

Gebe doch mal die Variablen einzeln aus
PHP:
echo "Username ".$allus."<br>";
echo "usage ".$sizecurb."<br>";
echo "maxquot ".$maxquot."<br>";

Gruß
 
Habe jezt die Zeilen engefügt aber immer noch eine Weise Seite.
Aber mir ist was aufgefallen was fast Peindlich ist :(

Code:
$allusers = mysql_query("select distinct userid from oc_preferences where configkey = 'firstLoginAccomplished' ;");
$quota = mysql_query("select configvalue from oc_preferences where configkey = 'quota' and userid = '$allus' ;");

Hier müsten doch die abfrage der datenbank hin oder nicht?
Wenn ja dann ohrfeige ich mich!
 
Zurück