| Author |
Message |
JJT
Developer

Joined: 04 Nov 2006
Posts: 131

|
Posted:
2009-06-11, 06:22 (No subject) |
  |
Hi Daniel,
ok, du hast es nicht anders gewolt ;-)
changelog
-auto_delete fixed (unabhänging von multipart)
-am ende zeilenumbruch (bei shell)
-automatisches Finden des Config-Pfad (windows??)
-autom. löschen fehlerhaft bei aufruf ausserhalb den cron verzeichnisses
annahmen
$cron_del_files_after_days und $max_backup_files_each werden nicht mehr benötigt (macht durchaus sinn ;-)
demzufolge kann die Function AutoDeleteDays gelöscht werden
offen
- crondump.pl per cgi: geht dann autofind config-path?
diff crondump.pl crondump380.pl
20,21c20
< #my $absolute_path_of_configdir="/home/www/*****/htdocs/admin/msd/work/config/";
< my $absolute_path_of_configdir="";
---
> my $absolute_path_of_configdir="/home/www/doc/****/mysqldumper.de/www/mysqldumper/work/config/";
136a136
>
140,159d139
< #try to guess path
< if($absolute_path_of_configdir eq "")
< {
< #get full path
< #regex from http://www.*****.org/?node_id=47035
<
< if ($0=~m#^(.*)\\#) {
< #windows
< $absolute_path_of_configdir = "$1"."work\\config\\";
< } elsif ($0=~m#^(.*)/# ) {
< #*nix
< $absolute_path_of_configdir = "$1"."work/config/";
< #} else {`pwd` =~ /(.*)/;
< # $absolute_path_of_configdir = "$1";
< }
<
< $absolute_path_of_configdir =~ s/msd\_cron//g;
< #print $absolute_path_of_configdir."\n";
< }
<
161d140
<
225,230c204,208
< #if($cron_del_files_after_days>0) {
< # PrintOut("Autodelete: search for backups older than <font color=\"#0000FF\">$cron_del_files_after_days</font> days ...");
< # find(\&AutoDeleteDays, $backup_path);
< # DeleteFiles (\@trash_files);
< #}
<
---
> if($cron_del_files_after_days>0) {
> PrintOut("Autodelete: search for backups older than <font color=\"#0000FF\">$cron_del_files_after_days</font> days ...");
> find(\&AutoDeleteDays, $backup_path);
> DeleteFiles (\@trash_files);
> }
275c253
< if ($html_output==0) { print "\nEnd of Cronscript\n"; }
---
> if ($html_output==0) { print "\nEnd of Cronscript"; }
911c889
< push(@filearr,"$fname|$file_databasename");
---
> push(@filearr,$fname);
916,922c894,898
< push(@filearr,"$fname|$file_databasename|$file_multipart");
< #$multipartfiles{$file_databasename}=$fname;
< #foreach $key (%multipartfiles)
< #{
< #print "<br>".$key." -> "; #.$multipartfiles{$key};
< #push(@filearr,"$key|$file_databasename|$file_multipart");
< #}
---
> $multipartfiles{$file_databasename}=$fname;
> foreach $key (%multipartfiles)
> {
> #print "<br>".$key." -> ".$multipartfiles{$key};
> }
939,940c915
< #@filearr=sort{"$b" gt "$a"}(@filearr);
< @filearr=sort{"$b" cmp "$a"}(@filearr);
---
> @filearr=sort{"$b" gt "$a"}(@filearr);
945c920
< # print "<br>$key\n";
---
> # print "<br>$key: $filearray{$key}";
949,959c924,934
< #if($max_backup_files==0) {
< # PrintOut("Autodelete by count ($max_backup_files) => found $anz Backups");
< # if ($anz>0)
< # {
< # for($i = 0; $i < ($anz-$max_backup_files); $i++)
< # {
< # @str=split(/\|/,$filearr[$i]);
< # push(@trash_files, $str[2]);
< # }
< # }
< #} else {
---
> if($max_backup_files_each==0) {
> PrintOut("Autodelete by count ($max_backup_files) => found $anz Backups");
> if ($anz>0)
> {
> for($i = 0; $i < ($anz-$max_backup_files); $i++)
> {
> @str=split(/\|/,$filearr[$i]);
> push(@trash_files, $str[2]);
> }
> }
> } else {
963d937
< my $delete_multi =0;
966d939
< #$item: test_2009_06_02_00_33.sql.gz|test[|1]
968,995c941,943
<
< #init db-counter
< if (!defined $dbanz{$str[1]}) {
< $dbanz{$str[1]}=1;
< }
<
< #multipart?
< if(!defined $str[2]){
< #no mp
< $dbanz{$str[1]}++;
< $delete_multi = 1;
< }elsif($str[2]>1){
< #mp
< #why do we need this
< if(!$delete_multi){
< $delete_multi = 0;
< }
< }
<
< if($dbanz{$str[1]}>$max_backup_files && $delete_multi){
< push(@trash_files, $str[0]);
< #print $str[0].$delete_multi."\n";
< }
<
< if(defined $str[2] && $str[2]==1){
< $dbanz{$str[1]}++;
< $delete_multi = 1;
< }
---
> if (defined $dbanz{$str[1]}) { $dbanz{$str[1]}++; }
> else { $dbanz{$str[1]}=1; }
> push(@trash_files, $str[2]) if($dbanz{$str[1]}>$max_backup_files);
998c946
< #}
---
> }
1013,1015c961
< my $file_to_delete = $backup_path.$datei;
< unlink($file_to_delete);
< #print "\n$backup_path$datei";
---
> unlink($datei);
zusätzlich hänge ich das komplette script an
gruß Jonathan
/EDIT JayD: **** = persönliche Daten entfernt
|
|
   |
 |
Anzeigen
|
Posted:
Anzeigen |
 |
| Description: |
|
 Download |
| Filename: |
crondump.zip |
| Filesize: |
10.7 KB |
| Downloaded: |
258 Time(s) |
|
|
| |
 |
JayD
Moderator


Age: 50
Joined: 12 Apr 2009
Posts: 1017
Location: Ruhrgebiet

|
Posted:
2009-06-11, 13:43 (No subject) |
  |
Hi,
ich habe jetzt aus Zeitgründen nicht gelesen, worum es genau geht.
Ich hoffe, Deine angehängte Datei enthält keine vertraulichen Daten?
Wollte sie grad schon entfernen... ansonsten schicke soetwas bitte lieber per Mail.
Wenn es nur ein Testfile ist, ist es natürlich ok.
_________________ Gruß,
Jörg
Anfragen zu vBulletin, welche nichts mit Datenbanken bzw. dem Dumper zu tun haben, bitte nicht hier sondern im vBulletin-Support-Forum stellen.
Aus technischen Gründen befindet sich der Rest der Signatur auf der Rückseite dieses Beitrags.
|
|
  |
 |
DSB
Developer


Age: 41
Joined: 30 Apr 2004
Posts: 16073
Location: Reichenberg bei Würzburg

|
Posted:
2009-06-11, 18:33 (No subject) |
  |
Hallo Jonathan,
vielen, herzlichen Dank!
Ich werde das moregn testen und wenn es zufriedenstellend läuft, werde ich das übernehmen und den Download hier im Forum aktualisieren.
Du glaubst gar nicht wie toll ich es finde, dass Du Dich daran gesetzt hast und hier Ergebnisse postest. *freu*
_________________ Gruß / Greetings, DSB
Teigwaren heißen Teigwaren, weil sie Teig waren.
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.
|
|
    |
 |
DSB
Developer


Age: 41
Joined: 30 Apr 2004
Posts: 16073
Location: Reichenberg bei Würzburg

|
Posted:
2009-06-14, 17:49 (No subject) |
  |
So, ich habe die Version von Jonathan (ganz herzlichen Dank noch einmal!) mit der meinen verifiziert und zusammen gefügt. Mit Revision 432 sollte nun also auch das automatische Löschen wieder funktionieren - sowohl für normale, als auch für Multipart-Dateien. Bitte testet es ausgiebig und meldet mir hier, falls es doch noch Probleme geben sollte.
Jetzt wird das Löschen am Ende der Routine gemacht, damit im Fehlerfall beim Backup die alten Dateien erhalten bleiben. So kann man dann im Notfall noch auf ein älteres Backup zurück greifen.
Damit hat man auch einen weiteren Indikator falls das Skript vorzeitig abgebrochen wird. In dem Fall wird die Auto-Löschroutine nicht ausgeführt. Hat man also permanent mehr Dateien im work/backup-Verzeichnis obwohl man die automatische Löschfunktion aktiviert hat, so ist klar, dass das Perlskript vorzeitig abgebrochen wird, da es bei Abarbeitung nicht bis zur Ausführung der Löschroutine kommt.
_________________ Gruß / Greetings, DSB
Teigwaren heißen Teigwaren, weil sie Teig waren.
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.
|
|
    |
 |
JayD
Moderator


Age: 50
Joined: 12 Apr 2009
Posts: 1017
Location: Ruhrgebiet

|
Posted:
2009-06-14, 21:27 (No subject) |
  |
Eine ebenso simpele wie geniale Idee, vielen Dank.
Ich werde das vermutlich übernächste Woche erst testen, da mir zunächst noch ein Serverumzug bevorsteht und ich vorher möglichst nichts mehr ändern möchte.
Auf anderen Plattformen mit kleineren DB könnte ich es eh nicht ausreichend genug testen.
Aber ich werde dann selbstverständlich berichten.
_________________ Gruß,
Jörg
Anfragen zu vBulletin, welche nichts mit Datenbanken bzw. dem Dumper zu tun haben, bitte nicht hier sondern im vBulletin-Support-Forum stellen.
Aus technischen Gründen befindet sich der Rest der Signatur auf der Rückseite dieses Beitrags.
|
|
  |
 |
JJT
Developer

Joined: 04 Nov 2006
Posts: 131

|
Posted:
2009-06-23, 00:32 update |
  |
hi,
freut mich wie es bei der Weiterentwicklung voran geht. Aber am meisten freut mich, dass mein personally most annoying bug mit rev 433 behoben worden ist. Wenn das der Lohn für meine Arbeit war, dann wars das wert :-)
Ansonsten hätte ich noch eine kleine Änderung am cron-script, beim autofind-path. in der Default-Einstellung würde sonst der Pfad nicht 'gefunden' werden, falls ein falscher eingetragen sein sollte.
138,139c140,141
< #try to guess path if $absolute_path_of_configdir is not filled
< if($absolute_path_of_configdir eq "" || ! -d $absolute_path_of_configdir)
---
> #try to guess path
> if($absolute_path_of_configdir eq "")
noch 2 Kleinigkeiten,
- cron-script bei aufruf per cmd ohne html-output, kommt als erste zeile 'Content-Type'.....
- bei mir unter linux mit firefox werden die Texte teilweise zu groß ausgegeben, z.b. unter Einstellungen. Fix in style.css, zeile 104. Bei
table td
hab ich zusätzlich font-size:12pt hinzugefügt. Nun sieht es wieder gut aus.
aber ich sehe schon, ihr wollt mich arbeitslos machen, alle meine mir bekannten sind inzwischen behoben :-) danke!!
Ein Wunsch/Verbesserungsvorschlag hätte ich aber noch. Und zwar im cron-Script, wenn man alle DBs sichert. Anstatt die DBs aus der Config zu lesen, DBs dynamich per sql abfragen. Optional könnte man dazu noch ein Config-Parameter spendieren, der über die GUI änderbar ist.
Das hätte 2 Vorteile, zum einem bräuchte man nicht mehr das zusätzliche db_refresh (cron) script, zum anderen könnte man dann alles bequem über die GUI steuern.
und noch ein letzter Tip, kennst du subversion keywords? http://svnbook.red-bean.com/en/1.4/svn.advanced.props.special.keywords.html
damit kann man z.b. automatisch eine variable mit der aktuellen Revision füllen lassen, so dass man das nicht mehr manuell machen muss.
PS: Die (Server)zeit vom Forum geht um eine Stunde falsch. Im Moment ist es 00:32 und nicht 23:32 ;-)
|
|
   |
 |
DSB
Developer


Age: 41
Joined: 30 Apr 2004
Posts: 16073
Location: Reichenberg bei Würzburg

|
Posted:
2009-06-23, 00:42 (No subject) |
  |
Hallo Jonathan,
vielen Dank für Deine sinnvollen Hinweise. Die kleinen Diffs übernehme ich gerne.
Deinen anderen Vorschlag (DBs dynamisch ermitteln) werde ich momentan noch nicht übernehmen, da ich noch andere Dinge auf dem Zettel habe, die zunächst wichtiger sind. Im Hinterkopf habe ich das aber auch schon länger. Mit Perl werde ich langsam auch wärmer und will da noch einige Strukturen gerade bezüglich der Konfiguration noch umbauen/erweitern.
Wegen der svn-keywoards mache ich mich gerne mal schlau. Dir ist also aufgefallen, dass ich das immer durch händische Anpassungen mache und auch gerne mal vergesse . Ein Automatismus käme mir da sehr gelegen. Ich wusste nur noch nicht, dass es so etwas gibt. Aber jetzt kann ich mich diesbezüglich schlau machen. Danke für den Tipp!
_________________ Gruß / Greetings, DSB
Teigwaren heißen Teigwaren, weil sie Teig waren.
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.
|
|
    |
 |
DSB
Developer


Age: 41
Joined: 30 Apr 2004
Posts: 16073
Location: Reichenberg bei Würzburg

|
Posted:
2009-06-26, 23:46 (No subject) |
  |
Deine Anregungen sind jetzt in Revision 453 mit eingeflossen.
Leider habe ich nicht heraussfinden können, wie ich Deinen Tipp bezüglich der SVN-Variablen mit meinem Tortoise-SVN-Client umsetzen kann. Hast Du da einen Tipp für mich, wie ich das dort einbinden und anwenden kann?
_________________ Gruß / Greetings, DSB
Teigwaren heißen Teigwaren, weil sie Teig waren.
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.
|
|
    |
 |
JJT
Developer

Joined: 04 Nov 2006
Posts: 131

|
Posted:
2009-07-01, 00:06 (No subject) |
  |
|
   |
 |
|
|
CrackerTracker © 2004 - 2012 CBACK.de
Powered by Orion based on phpBB
© 2001, 2002 phpBB Group
CBACK Orion Style based on FI Theme
All times are GMT + 2 Hours
phpBB SEO
|