FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: the ratman am 08 Mai 2017, 19:01:40

Titel: [erledigt] doif für backup
Beitrag von: the ratman am 08 Mai 2017, 19:01:40
meine geistigen fähigkeiten sind wieder mal unzulänglich!

ich würde gerne ein doif basteln, das mir alle 30 tage in der nacht 2 dd anstartet und mir auch beide files mit dem entsprechenden datum versorgt.
einmal lokal ein backup des gesamten fhem.servers und weils schon rennt, ein backup meiner entfernten nas per ssh (generell funzt ssh per fhem zu der nas, z.b. per sysmon).

bisher hab ich:(
$mday==1 and [03:00]
)

(
{qx(sudo dd if=/dev/mmcblk0 of=/media/luke7/ratOhaus-xxxx-xx-xx.img bs=1M)};
{qx(TELNET ZUR NAS dd if=/dev/mmcblk0 of=/srv/dev-disk-by-label-NASRaid/RAID-ROOT/Ratman/Backups/Luke7-xxxxx-xx-xx.img bs=1M)};
)

DOELSE



mir fehlt also - wie üblich - das perl/linux wissen, um das zeug wirklich zum rennen zu kriegen:
1) xxxx-xx-xx sollte natürlich aktuelles JAHR-MONAT-TAG zeigen mit führender 0
2) TELNET ZUR NAS sollte den anschließenden befehl auf meiner nas "Luke7" ausführen.
3) was passiert eig. mit dem timer für die 30 tage, wenn ich reboote oder fhem abkackt zwischendurch?

p.s.
1. ja, ich weiß: dd ist böse - aber ich bin böser *g*
2. und wenn ich es irgendwie hinbekomme, dass jedes 4. backup automatich das älteste killed (ohne dessen datum zu kennen), wärs natürlich die absolute kür in dem spiell!
3. wenn das funzt, könnt ich bitte dazu die passenden infos (für dummys) kriegen, um zu kapieren, warum was wie gemacht wird?

ich erbitte hilfe der wissenden!
vielen dank und dankbarkeit im voraus!!!
Titel: Antw:doif für backup
Beitrag von: Damian am 08 Mai 2017, 20:15:34
Bei der Bedingung würde ich einfach definieren:

($mday==1 and [03:00])

das ist restartfest. do always nicht vergessen.

Den Rest können dir sicherlich linux-User aufzeigen. Mein System läuft unter Windows.
Titel: Antw:doif für backup
Beitrag von: the ratman am 08 Mai 2017, 20:17:35
ahh, schon mal einfacher ... myday ist dann der 1. tag im monat?
Titel: Antw:doif für backup
Beitrag von: Damian am 08 Mai 2017, 20:28:38
Zitat von: the ratman am 08 Mai 2017, 20:17:35
ahh, schon mal einfacher ... myday ist dann der 1. tag im monat?

ja, es gibt noch diverse andere Zeitvariablen, die man in der DOIF-Bedingung nutzen kann, Zitat aus der Commandref zu DOIF:

ZitatVariablen für Zeit- und Datumsangaben, $sec, $min, $hour, $mday, $month, $year, $wday, $yday, $isdst, $week, $hms, $hm, $md, $ymd
Titel: Antw:doif für backup
Beitrag von: the ratman am 08 Mai 2017, 20:35:39
is es böse, wenn ich sage: ich komm mit dem lesen gar nimma nach. du bist viel zu flott mit neuem zeug im doif *g*.
ich glaub, langsam kannst schon fast ne eigene website mit ner (sehr intelligenten) suchfunktion als cref basteln.  ist langsam ganz schön viel, was man dort finden kann ...
Titel: Antw:doif für backup
Beitrag von: Damian am 08 Mai 2017, 20:56:07
Zitat von: the ratman am 08 Mai 2017, 20:35:39
is es böse, wenn ich sage: ich komm mit dem lesen gar nimma nach. du bist viel zu flott mit neuem zeug im doif *g*.
ich glaub, langsam kannst schon fast ne eigene website mit ner (sehr intelligenten) suchfunktion als cref basteln.  ist langsam ganz schön viel, was man dort finden kann ...

Ich hoffe da tut sich irgendwann mal was, um die Commandref im Web aufzudröseln. Den Thread: https://forum.fhem.de/index.php/topic,39854.0.html habe ich vor fast zwei Jahren begonnen.

Wenn du die neuen Aggregationsfunktionen meinst, da denke ich, dass sie sich bald rumsprechen, weil sie typische Anwendungsfälle in sehr kurzen Form abdecken können wie z. B. die Umwälzpumpensteuerung siehe : https://forum.fhem.de/index.php/topic,71578.msg631048.html#msg631048
Titel: Antw:doif für backup
Beitrag von: the ratman am 08 Mai 2017, 21:27:44
ich meins eig. ganz allgemein - langsam erschlagen einen die unmengen an möglichkeiten im doif. lustig - ist ja eigenentlich ne super sache - so was universelles und wirklich funzendes, wie dein doif, findet man selten.
man merk halt nur immer öfters, dass ich nicht mehr finde was ich suche, sobald ich die cref beanspruche. man muß mittlerweile recht genau wissen, was man suchen will ums auch wirklich zu finden. einfach mal so durchgucken, was doif so kann um sich ideen zu holen (hab ich anfangs gerne immer wieder mal gemacht), ist langsam nicht mehr möglich.
ich würd ja an deiner stelle eher das wiki aufblasen und die cref von den vielen beispielen befreien. zum einen kannst im wiki sicherlich besser strukturieren und zum andern würde die hilfefunktion in fhem um ecken übersichtlicher werden. ist aber nur meine meinung ... bei der menge an info kannst is sowieso nie allen recht machen.

hmm, irgendwie gings mir hier eig. um anders *g*
Titel: Antw:doif für backup
Beitrag von: the ratman am 16 Mai 2017, 20:47:50
hab ich wieder mal zeit gefunden, am auto-backup zu werkeln und natürlich hauts mir die rechte wieder um die ohren.

der befehl ansich macht ein backup, wenn ich z.b. als pi angemeldet bin.
was muß ich tun, damit das ganze aus fhem raus mit qx auch funzt?
{qx(sudo dd if=/dev/mmcblk0 of=/media/luke7/ratOhaus-2017-xx-01.img bs=1M &)};weil:
Zitat2017.05.16 20:42:52 1: Logfile gelöscht

Wir gehen davon aus, dass der lokale Systemadministrator Ihnen die
Regeln erklärt hat.  Normalerweise läuft es auf drei Regeln hinaus:

    #1) Resprektieren Sie die Privatsphäre anderer.
    #2) Denken Sie nach bevor Sie tippen.
    #3) Mit großer Macht kommt große Verantwortung.

sudo: Kein TTY vorhanden und kein »askpass«-Programm angegeben
ich hab ich auch schon selber gefragt, aber ich hab mir keine antwort gegeben. ausserdem hab ich definitiv keine regel! *g*
Titel: Antw:doif für backup
Beitrag von: amenomade am 19 Mai 2017, 12:41:39
Zitat{qx(sudo dd ...
Der User fhem muss sudoer sein.
Und der User fhem muss ein shell haben

EDIT: wobei... mit dem shell bin ich nicht sicher, da Du ein einzelnes Kommando durchführst. Vielleicht nicht nötig. Teste mal nach und nach.
Titel: Antw:doif für backup
Beitrag von: the ratman am 19 Mai 2017, 13:27:03
ahh, ein suderant muß er also sein *g*

nö, im ernst ... das sieht dann so aus? ich möcht ungern direkt werkeln und mir was versauen, also bitte meine abschreibübung benoten:
/etc/sudoers

fhem ALL=(ALL) NOPASSWD: ALL


zu "shell" hab ich nix gefunden, werde aber mal bei der entsprechenden treibstofffirma nachfragen *g*.


NACHTRAG:
scheint mal generell zu funzen - auch ohne shell ... VIELEN DANK!
der nachteil: trotz des "&" am ende des befehls steht fhem bis zum bitteren ende des backups still (verbindung verloren).
gibts da ne möglichkeit?
Titel: Antw:doif für backup
Beitrag von: amenomade am 19 Mai 2017, 14:48:26
Qx erlaubt die Bewertung des Returncodes. Deswegen blockiernd. Vielleicht mit system () statt qx () ?

Ansonsten finde ich dein sudoers ein bisschen zu permissiv. Da ist fhem quasi root

Via Tapatalk

Titel: Antw:doif für backup
Beitrag von: Fixel2012 am 19 Mai 2017, 15:35:56
Hi,
dein Skript sieht interessant aus, ich hätte auch Interesse an solch einer Lösung. Wärst du so nett und stellst es bei Gelegenheit zur Verfügung  :D

Danke und Gruß,
Fixel
Titel: Antw:doif für backup
Beitrag von: amenomade am 19 Mai 2017, 16:12:54
So weit macht er kein Skript, sondern alles in einem DOIF, der Systembefehle auslöst (siehe 1. Post)
Titel: Antw:doif für backup
Beitrag von: Fixel2012 am 19 Mai 2017, 16:25:02
Hast Recht- würde mich trotzdem mal freuen, und rüber schauen ob das für mich nützlich ist.
Titel: Antw:doif für backup
Beitrag von: the ratman am 19 Mai 2017, 19:42:07
LÄUFT! VIELEN, VIELEN DANK!
einzige stolperfalle für noobs wie mich: system will "" im gegensatz zu qx, das ja () will ...
mir fehlt jetzt nur noch ein perl-könig, der mir sagt, wie ich in den filenamen $mday, $month und $year rein krieg ohne dass in n-korea ne atomrakete startet *g*

und hier das doif, wies jetzt steht:defmod Backups DOIF ($mday==1 and [03:30])\
\
(\
{system "sudo dd if=/dev/mmcblk0 of=/media/luke7/ratOhaus-2017-xx-01.img bs=1M &"};;\
)\
\
DOELSE
attr Backups DbLogExclude .*
attr Backups alias System Backup auf Luke 7
attr Backups do always
attr Backups group Backups und Sicherheit
attr Backups icon time_calendar
attr Backups room ratOhaus


@Fixel2012
ist einfach, wie gesagt ein doif, dass brav einen dd-befehl aufruft. der pfad ist eine smb-freigabe auf meine nas rüber.
n bissi was zu dd --> https://wiki.ubuntuusers.de/dd/
aber nicht mich hauen ... dd ist (angeblich) unzuverlässig.
mir hats zwar schon bei meiner nas 3 mal das leben gerettet, aber ich könnt ja glück gehabt haben ...
Titel: Antw:doif für backup
Beitrag von: Fixel2012 am 19 Mai 2017, 23:56:39
Zitat von: the ratman am 19 Mai 2017, 19:42:07
LÄUFT! VIELEN, VIELEN DANK!
einzige stolperfalle für noobs wie mich: system will "" im gegensatz zu qx, das ja () will ...
mir fehlt jetzt nur noch ein perl-könig, der mir sagt, wie ich in den filenamen $mday, $month und $year rein krieg ohne dass in n-korea ne atomrakete startet *g*

und hier das doif, wies jetzt steht:defmod Backups DOIF ($mday==1 and [03:30])\
\
(\
{system "sudo dd if=/dev/mmcblk0 of=/media/luke7/ratOhaus-2017-xx-01.img bs=1M &"};;\
)\
\
DOELSE
attr Backups DbLogExclude .*
attr Backups alias System Backup auf Luke 7
attr Backups do always
attr Backups group Backups und Sicherheit
attr Backups icon time_calendar
attr Backups room ratOhaus


@Fixel2012
ist einfach, wie gesagt ein doif, dass brav einen dd-befehl aufruft. der pfad ist eine smb-freigabe auf meine nas rüber.
n bissi was zu dd --> https://wiki.ubuntuusers.de/dd/
aber nicht mich hauen ... dd ist (angeblich) unzuverlässig.
mir hats zwar schon bei meiner nas 3 mal das leben gerettet, aber ich könnt ja glück gehabt haben ...

Danke dir, hatte mich auch schonmal über DD Backup Informiert es dann aber aufgeben gehabt  ;D Werde mal schauen was ich mit deinem DOIF mache  :)
Titel: Antw:doif für backup
Beitrag von: amenomade am 20 Mai 2017, 01:28:29
{system "sudo dd if=/dev/mmcblk0 of=/media/luke7/ratOhaus-".$year."-".$month."-".$mday.".img bs=1M &"} sollte gehen?
Titel: Antw:doif für backup
Beitrag von: the ratman am 20 Mai 2017, 09:33:17
goil!
funzt generell - er macht backup mit aktuellen datum

einzig doif ist weniger erfreut, das wirft einen error {system "sudo dd if=/dev/mmcblk0 of=/media/luke7/ratOhaus-".$year."-".$month."-".$mday.".img bs=1M &"}: -1 2017-05-20 09:30:24raus.
im log kommt aber nix - keine ahnung ...
Titel: Antw:doif für backup
Beitrag von: Damian am 20 Mai 2017, 09:42:47
Zitat von: the ratman am 20 Mai 2017, 09:33:17
goil!
funzt generell - er macht backup mit aktuellen datum

einzig doif ist weniger erfreut, das wirft einen error {system "sudo dd if=/dev/mmcblk0 of=/media/luke7/ratOhaus-".$year."-".$month."-".$mday.".img bs=1M &"}: -1 2017-05-20 09:30:24raus.
im log kommt aber nix - keine ahnung ...

einfach definieren:

{system "sudo dd if=/dev/mmcblk0 of=/media/luke7/ratOhaus-".$year."-".$month."-".$mday.".img bs=1M &";return 0} definieren, damit DOIF weiß, dass alles OK ist.
Titel: Antw:doif für backup
Beitrag von: the ratman am 20 Mai 2017, 11:03:38
is doch geil - macht was es soll, ohne murren - vielen dank wieder mal.

btw - führende 0 bei monat oder so is nicht, gell?
Titel: Antw:doif für backup
Beitrag von: Damian am 20 Mai 2017, 11:20:18
Zitat von: the ratman am 20 Mai 2017, 11:03:38
is doch geil - macht was es soll, ohne murren - vielen dank wieder mal.

btw - führende 0 bei monat oder so is nicht, gell?

{system "sudo dd if=/dev/mmcblk0 of=/media/luke7/ratOhaus-".sprintf("%02d-%02d-%02d", $year, $month,$mday).".img bs=1M &";return 0}
Titel: Antw:[erledigt] doif für backup
Beitrag von: amenomade am 20 Mai 2017, 12:37:42
Da haben wir aber einen Perfektionist!  ;)
Titel: Antw:[erledigt] doif für backup
Beitrag von: the ratman am 20 Mai 2017, 13:01:37
@damian
flutscht. danke dir!
irgendwann mal kapier ich auch, wann man bei perl was nimmt, warscheinlich aber bin ich da schon verwest *g*

@amenomade
jo, man gönnt sich ja sonst nix ...
Titel: Antw:[erledigt] doif für backup
Beitrag von: Damian am 20 Mai 2017, 13:36:52
Zitat von: the ratman am 20 Mai 2017, 13:01:37
irgendwann mal kapier ich auch, wann man bei perl was nimmt, warscheinlich aber bin ich da schon verwest *g*

mit Sicherheit, vor ca. vier Jahren wusste ich noch nicht mal wie man Perl schreibt.
Titel: Antw:[erledigt] doif für backup
Beitrag von: the ratman am 20 Mai 2017, 16:49:36
das hat ein alter freund von mir schon vor jahren behauptet. der war top programmierer und hat gemeint, er bringt mir c++ in 4 wochenenden bei *lach* nach 2 wochenenden hat er toal entnervt aufgeben.
ganz schlimm is so logikzeugs wie regex - da steig ich bei mehr als .* aus ...