[98_backup.pm] neue Version sucht Tester

Begonnen von CoolTux, 28 März 2019, 17:23:34

Vorheriges Thema - Nächstes Thema

CoolTux

Heute Nacht liefen zwei meiner FHEM Instanzen mit dem neuen backup. Hat alles super geklappt und die Größe ist auch gleich geblieben.

@Udo
Habe gesehen Du hattest gestern configdb eingecheckt mit den neuen Hashs. Mir ist allerdings aufgefallen das eh alle Dateien und Verzeichnisse ausgehend von der obersten Ebene von $modpath gesichert werden.

Wäre wenn also nur noch interessant für User die ihre DB Datei wo anders haben. Was denkst Du?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Newbie

Hallo und guten Morgen,

hab die neue Version gerade getestet - macht was es soll. Daumen hoch.


vg Jens
fhem-6.1 (configDB+DbLog)  auf ODROID-XU4

helmut

Zitat von: Newbie am 29 März 2019, 08:36:42
hab die neue Version gerade getestet - macht was es soll. Daumen hoch.
Dem schliesse ich mich an.

Gruss  Helmut
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

betateilchen

Zitat von: CoolTux am 29 März 2019, 07:28:41
@Udo
Habe gesehen Du hattest gestern configdb eingecheckt mit den neuen Hashs. Mir ist allerdings aufgefallen das eh alle Dateien und Verzeichnisse ausgehend von der obersten Ebene von $modpath gesichert werden.

Wäre wenn also nur noch interessant für User die ihre DB Datei wo anders haben. Was denkst Du?

Genau das ist das Szenario. Bei mir liegt die Datenbank immer außerhalb des FHEM Verzeichnisses.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

CoolTux

Zitat von: betateilchen am 29 März 2019, 13:12:26
Genau das ist das Szenario. Bei mir liegt die Datenbank immer außerhalb des FHEM Verzeichnisses.

Ok dann baue ich das noch mit ein, aber nur sofern der Ort ausserhalb von $modpath ist.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

DeeSPe

Ich war mal so frech was zu vereinfachen und $attr gegen AttrVal zu tauschen, das macht den Code auch gleich wesentlich kürzer:
@@ -78,9 +78,10 @@
     my ( $cl, $param ) = @_;

     my $byUpdate = ( $param && $param eq 'startedByUpdate' );
-    my $modpath    = AttrVal( 'global', 'modpath', '' );
-    my $configfile = AttrVal( 'global', 'configfile', '' );
-    my $statefile  = AttrVal( 'global', 'statefile',  '' );
+    my $modpath    = AttrVal( 'global', 'modpath', '.' );
+    my $configfile = AttrVal( 'global', 'configfile', './fhem.cfg' );
+    my $statefile  = AttrVal( 'global', 'statefile',  './log/fhem.save' );
+    my $dir        = AttrVal( 'global', 'backupdir', './backup');
     my $now        = gettimeofday();
     my @t          = localtime($now);
     $statefile = ResolveDateWildcards( $statefile, @t );
@@ -95,21 +96,7 @@
       if ( configDBUsed() );

     # set backupdir
-    my $backupdir;
-    if ( !defined( $attr{global}{backupdir} ) ) {
-        $backupdir = $modpath . '/backup';
-    }
-    else {
-        if ( $attr{global}{backupdir} =~ m/^\/.*/ ) {
-            $backupdir = $attr{global}{backupdir};
-        }
-        elsif ( $attr{global}{backupdir} =~ m/^\.+\/.*/ ) {
-            $backupdir = $modpath . '/' . $attr{global}{backupdir};
-        }
-        else {
-            $backupdir = $modpath . '/' . $attr{global}{backupdir};
-        }
-    }
+    my $backupdir = $dir =~ m/^(\.(\/.*)$/ ? "$modpath$1" : $dir =~ m/^\.\.\// ? "$modpath/$dir" : $dir;

     # create backupdir if not exists
     if ( !-d $backupdir ) {
@@ -216,14 +203,8 @@

sub createArchiv($$$) {
     my ( $backupdir, $cl, $byUpdate ) = @_;
-    my $backupcmd =
-      (  !defined( $attr{global}{backupcmd} )
-        ? undef
-        : $attr{global}{backupcmd} );
-    my $symlink =
-      ( !defined( $attr{global}{backupsymlink} )
-        ? 'no'
-        : $attr{global}{backupsymlink} );
+    my $backupcmd = AttrVal("global","backupcmd",undef);
+    my $symlink = AttrVal("global","backupsymlink","no");
     my $tarOpts;
     my $msg;
     my $ret;


Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

betateilchen

äh...


+    my $modpath    = AttrVal( 'global', 'modpath', '.' );
+    my $configfile = AttrVal( 'global', 'configfile', './fhem.cfg' );
+    my $statefile  = AttrVal( 'global', 'statefile',  './log/fhem.save' );
+    my $dir        = AttrVal( 'global', 'backupdir', './backup');


liest sich unlogisch. Wäre es nicht sinnvoller


+    my $modpath    = AttrVal( 'global', 'modpath', '.' );
+    my $configfile = AttrVal( 'global', 'configfile', "$modpath/fhem.cfg" );
+    my $statefile  = AttrVal( 'global', 'statefile',  "$modpath/log/fhem.save" );
+    my $dir        = AttrVal( 'global', 'backupdir', "$modpath/backup");


zu verwenden?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

DeeSPe

Zitat von: betateilchen am 29 März 2019, 14:30:30
äh...


+    my $modpath    = AttrVal( 'global', 'modpath', '.' );
+    my $configfile = AttrVal( 'global', 'configfile', './fhem.cfg' );
+    my $statefile  = AttrVal( 'global', 'statefile',  './log/fhem.save' );
+    my $dir        = AttrVal( 'global', 'backupdir', './backup');


liest sich unlogisch. Wäre es nicht sinnvoller


+    my $modpath    = AttrVal( 'global', 'modpath', '.' );
+    my $configfile = AttrVal( 'global', 'configfile', "$modpath/fhem.cfg" );
+    my $statefile  = AttrVal( 'global', 'statefile',  "$modpath/log/fhem.save" );
+    my $dir        = AttrVal( 'global', 'backupdir', "$modpath/backup");


zu verwenden?

Mag sein, ich hatte einfach die Defaultwerte aus einer Standardinstallation genommen.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

CoolTux

Danke Euch beiden. Schaue ich mir heute Abend mal in Ruhe an.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Frank_Huber

Ich kann keine Fehler feststellen. Backup läuft wie zuvor.

Standart FHEM Tagesaktuell, DbLog auf externen MySQL.