Hauptmenü

[erledigt] doif für backup

Begonnen von the ratman, 08 Mai 2017, 19:01:40

Vorheriges Thema - Nächstes Thema

the ratman

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!!!
→do↑p!dnʇs↓shit←

Damian

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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

the ratman

ahh, schon mal einfacher ... myday ist dann der 1. tag im monat?
→do↑p!dnʇs↓shit←

Damian

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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

the ratman

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 ...
→do↑p!dnʇs↓shit←

Damian

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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

the ratman

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*
→do↑p!dnʇs↓shit←

the ratman

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*
→do↑p!dnʇs↓shit←

amenomade

#8
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.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

the ratman

#9
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?
→do↑p!dnʇs↓shit←

amenomade

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

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Fixel2012

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
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

amenomade

So weit macht er kein Skript, sondern alles in einem DOIF, der Systembefehle auslöst (siehe 1. Post)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Fixel2012

Hast Recht- würde mich trotzdem mal freuen, und rüber schauen ob das für mich nützlich ist.
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

the ratman

#14
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 ...
→do↑p!dnʇs↓shit←