facebraker
New Member
Hallo,
ich muss im Vorhinein sagen, dass ich keine Ahnung von PHP habe, ich kann programmieren, d.h. grundlegene Strukturen sind mir nicht fremd bloß an der PHP Syntax hapert es, wobei ich sagen muss es erinnert mich schwer an C.
Mein Problem:
Ich möchte einen Forschrittsbalken darstellen für eine Datensicherung
Die Kontrolle der Datensicherung ist einfach wie genial, ich sichere die Daten per tar aufs Band und schreibe die gesicherten Dateien Zeile für Zeile in die Datei gesamt.log
Nach der Sicherung, mache ich ein Prüflesen des Bandes mit tar und lasse wieder die angezeigten Dateien in eine Datei schreiben check.log
Stimmt die Anzahl der Dateien, ist die Sicherung sauber gelaufen.
Da die Sicherung für mich eine Blackbox ist, möchte ich wissen wie weit die Sicherung ist.
Ich weiß ja noch vom Vortag wieviel Dateien ich gesichert habe, da nehme ich an, dass es ca. die 100% sind.
Dann weiß ich, wie weit er gerade mit der Sicherung ist : Anzahl der Dateinen in der gesamt.log (die check.log lassen wir mal aussen vor)
Daraus weiß ich mit wieviel Prozent er fertig ist (Teil/Gesamt*100%)
Nun möchte ich das in einen PHP Skript umsetzen damit ich es Online nachgucken kann.
Das Skript soll solange laufen wie die Datein/tmp/dasi.run existiert, gewissermaßen ein endloskript.
in der While-Schleife habe ich ein sleep eingebaut.
Bei jeden Durchgang soll überprüft werden, wieviele Zeilen (Anzahl) aktuell in der gesamt.log sind, dann die Prozent ausrechnen z.B. 25% dann soll der Progressbar 25 von 100 Einheiten ansteigen. Das mache ich mit der Zählschleife, weil ich ja 25mal increasen muss.
Bloss die Sch**** geht nicht, mache ich einen Denkfehler?
Hier der Code:
Sorry für die sch*** Formatierung ...
Hoffe auf Hilfe
ich muss im Vorhinein sagen, dass ich keine Ahnung von PHP habe, ich kann programmieren, d.h. grundlegene Strukturen sind mir nicht fremd bloß an der PHP Syntax hapert es, wobei ich sagen muss es erinnert mich schwer an C.
Mein Problem:
Ich möchte einen Forschrittsbalken darstellen für eine Datensicherung
Die Kontrolle der Datensicherung ist einfach wie genial, ich sichere die Daten per tar aufs Band und schreibe die gesicherten Dateien Zeile für Zeile in die Datei gesamt.log
Nach der Sicherung, mache ich ein Prüflesen des Bandes mit tar und lasse wieder die angezeigten Dateien in eine Datei schreiben check.log
Stimmt die Anzahl der Dateien, ist die Sicherung sauber gelaufen.
Da die Sicherung für mich eine Blackbox ist, möchte ich wissen wie weit die Sicherung ist.
Ich weiß ja noch vom Vortag wieviel Dateien ich gesichert habe, da nehme ich an, dass es ca. die 100% sind.
Dann weiß ich, wie weit er gerade mit der Sicherung ist : Anzahl der Dateinen in der gesamt.log (die check.log lassen wir mal aussen vor)
Daraus weiß ich mit wieviel Prozent er fertig ist (Teil/Gesamt*100%)
Nun möchte ich das in einen PHP Skript umsetzen damit ich es Online nachgucken kann.
Das Skript soll solange laufen wie die Datein/tmp/dasi.run existiert, gewissermaßen ein endloskript.
in der While-Schleife habe ich ein sleep eingebaut.
Bei jeden Durchgang soll überprüft werden, wieviele Zeilen (Anzahl) aktuell in der gesamt.log sind, dann die Prozent ausrechnen z.B. 25% dann soll der Progressbar 25 von 100 Einheiten ansteigen. Das mache ich mit der Zählschleife, weil ich ja 25mal increasen muss.
Bloss die Sch**** geht nicht, mache ich einen Denkfehler?
Hier der Code:
Code:
<?php
require_once 'ProgressBar.class.php';
$bar = new ProgressBar();
$bar->setMessage('loading ...');
$bar->setAutohide(true);
$bar->setSleepOnFinish(1);
//$bar->setForegroundColor('#ff0000');
$elements = 100; //total number of elements to process
#Die Gesamtanzahl = 100%
$bar->initialize($elements);
#Datei mit den Zeilen die sich während der Sicherung erhöht
$teil = file("/tmp/check.log");
$gesamt = file("/tmp/gesamt.log");
#die Gesamt Dateien mal zum testen auf 100 gesetzt
$gesamt_count= 100;
#$gesamt_count= count($gesamt);
#zählen der Dateien
$teil_count=count($teil);
#ausrechnen der Prozent
$percent=$teil_count/$gesamt_count*100;
#echo "Fortschritt der Datensicherung $percent Prozent \n";
#echo "\n";
#echo count($teil);
#echo "\n";
#echo $php_errormsg;
$alt=0
#führe so lange aus, wie die Datei existiert
while (file_exists('/tmp/dasi.run'))
{
#ermittle die neue Anzahl
$teil_count=count($teil);
#rechne die neuen Prozente aus
$percent=$teil_count/$gesamt_count*$hundert;
$anzahl=$percent-$alt;
$alt=$percent;
#warte
sleep(1);
#führe das so oft aus, wie es neue Prozente sind
for($i=0;$i<$percent;$i++){
#echo "Fortschritt der Datensicherung $percent Prozent \n";
#sleep(5); // simulate a time consuming process
#erhöhe den balken
$bar->increase(); //calls the bar with every processed element
if($i==1){
$bar->setMessage('Datensicherung ...');
$bar->setForegroundColor('#3F41FF');
}
}
#setze Anzahl auf Null
$teil_count=0;
$anzahl=0;
}
?>
Sorry für die sch*** Formatierung ...
Hoffe auf Hilfe
Last edited by a moderator: