automatisches Backup + Kopie auf NAS + löschen alter Backups

Begonnen von yersinia, 10 Mai 2018, 11:57:27

Vorheriges Thema - Nächstes Thema

yersinia

Hallo zusammen,
es gibt im Netz viele Anleitungen, wie man ein Backup der FHEM Config macht. Ich möchte hier mein Vorgehen vorstellen und diskutieren. Vielleicht kann man ja was besser machen. :)

Bei mir wird jeden Samstag um 3:00 ein backup erstellt. Automatisch mittels DOIF:
define DOIF_AutoBackup DOIF ([03:00:00|6]) (backup)
attr DOIF_AutoBackup do always
attr DOIF_AutoBackup stateFormat next backup: timer_01_c01

(dieses Backup wird lokal im FHEM Backup Ordner abgelegt)

Da ich eine NAS von Synology (DS211+) besitze, bin ich nach dieser Anleitung vorgegangen. Allerdings nur den Teil mit dem fhem-user auf der Synology sowie Installation und Einrichtung von autofs.

EDIT 10.03.2019
Die /etc/autofs/auto.synology sieht bei mir zB so aus:
fhem_backup -fstype=cifs,rw,vers=2.1,credentials=/home/pi/.smbcredentials,file_mode=0777,dir_mode=0777 ://diskstation/freigabe
Die Credentials liegen unter /home/pi/.smbcredentials:
username=username
password=geheim

EDIT Ende

Meine NAS fährt unter der Woche und am Wochenende Nachts runter. Die DS211+ fährt am Wochenende automatisch um 9:00 hoch. Wenn die NAS hochgefahren ist, mountet autofs die entsprechende Freigabe für den user fhem.

Mittels DOIF kopiere ich das letzte (aktuellste) Backup auf die Freigabe um 9:10.
Dies geschieht mit dem Befehl
cp $(ls -dtr1 /opt/fhem/backup/* | tail -1) /mnt/syno/fhem_backup

Um 9.30 prüfe ich, ob ich ältere Backups (= älter 8 Wochen = 56 Tage) löschen lassen kann.
find /opt/fhem/backup -type f -mtime +56 -delete
(acht Wochen um ggf. fehlerhafte Uploads (aus welchem Grund auch immer) auffangen zu können)

Das ganze DOIF sieht wie folgt aus:
define DOIF_BackupUpload DOIF ([09:10:00|6])\
("cp $(ls -dtr1 /opt/fhem/backup/* | tail -1) /mnt/syno/fhem_backup")\
DOELSEIF ([09:30:00|6])\
("find /opt/fhem/backup -type f -mtime +56 -delete")
attr DOIF_BackupUpload do always
attr DOIF_BackupUpload stateFormat next upload: timer_01_c01


Läuft bei mir seit einigen Monaten ohne Probleme.

Für weitere Anregungen, andere Ideen und Vorgehensweisen bin ich Dankbar. :)
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Wernieman

Weil DU nach Meinungen gefragt hast:

- Warum DOIF und nicht ein AT?
  Ist (meiner Meinung nach) etwas Oversized

- Wenn keine neuen Backups erstellt werden (warum auch immer), werden trotzdem nach 56 Tagen alle Backups gelöscht
-> Besser "Anzahl" backups aufbewahren

- Was passiert, wenn das Backup nicht O.K.?
-> Besser noch Prüfungen einbauen und nur kopieren, wenn ..... (oder wenigstens warnen)

- Warum verschiedene Blöcke?
-> Mann kann doch kopieren /löschen in einem Block .... spart man sich den 2. Block


Aber wie bei Unix ist es bei FHEM: viele Wege führen zum Ziel
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

yersinia

Hi Werniemann,

vielen Dank für das Feedback. :)
Zitat von: Wernieman am 22 Mai 2018, 12:12:44
- Warum DOIF und nicht ein AT?
  Ist (meiner Meinung nach) etwas Oversized
Das ist relativ einfach: ich habe keine Erfahrung mit AT (ich nutze das gar nicht) - dafür aber mit DOIF. Und es funktioniert. Die Frage ist (für mich), welche Vorteile hätte AT gegenüber DOIF hier (bzw. welche Nachteile das DOIF gegenüber AT)?

Zitat von: Wernieman am 22 Mai 2018, 12:12:44
- Wenn keine neuen Backups erstellt werden (warum auch immer), werden trotzdem nach 56 Tagen alle Backups gelöscht
-> Besser "Anzahl" backups aufbewahren
Ja, das ist korrekt. Die lokalen Backups werden gelöscht, aber nicht die auf dem NAS.
Wenn dann für 56 Tage weder lokale Backups noch Kopien auf das NAS (sofern Backup erfolgreich) waren, dann ist die problematisch, das stimmt.
Die Frage ist, wie man das anders machen könnte - aber ein guter Denkanstoß da mal nachzuforschen...

Zitat von: Wernieman am 22 Mai 2018, 12:12:44
- Was passiert, wenn das Backup nicht O.K.?
-> Besser noch Prüfungen einbauen und nur kopieren, wenn ..... (oder wenigstens warnen)
s.u.a.o. :)
Ich habe bisher auch nur Backups erstellt, ich habe noch nicht getestet, wie man ein Backup wieder einspielt. Dazu fehlt mir allerdings auch eine vernünftige Testumgebung. -.- Und im produktiven FHEM ein Backup wieder einspielen...mmmh..da trau' ich mich nicht ran.

Zitat von: Wernieman am 22 Mai 2018, 12:12:44
- Warum verschiedene Blöcke?
-> Mann kann doch kopieren /löschen in einem Block .... spart man sich den 2. Block
Das stimmt. Zumal man das mit wait auch zeitlich trennen kann. Vielleicht kann man das optimieren...:)

Zitat von: Wernieman am 22 Mai 2018, 12:12:44
Aber wie bei Unix ist es bei FHEM: viele Wege führen zum Ziel
Das stimmt. Danke nochmals für das Feedback. :)
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Wernieman

Bezüglich DOIF:
Mir ist DOIF einfach eine zu große "Eirlegendewollmilchsau" (Persönliche Meinung)

Mann weis einfach zu wenig, was im Hintergrund läuft, weshalb ich lieber auf andere Module als auf DOIF setze. Zusätzlich wird zu viel (auch im Anfängerbereich) bei jeder Fragestellung auf DOIF verwiesen ... ... aber s.o., meine persöhnliche individuelle Meinung

Bezüglich Testen:
Ein Backup, welches noch nie getestet wurde ist nicht .... optimal (und kein Backup). Allerdings reicht es erstmal zu Testen, ob die Dateien überhaupt "integer" sind, d.h. mal das TAR entpacken und nachprüfen...

Bezüglich Fehlermeldung:
Du könntest den Fehlercode, den z.B. cp übergibt (Stichwort $?) auswerten und z.B: einen Dummy in FHEM setzen (lassen)

Bezüglich Versionen:
Einfach Anstatt Zeit auf Anzahl setzen, d.h. die letzten 56/7 Versionen aufbewahren. Sind dann beim Wöchentlichen Backup genau 56 Tage ;o)

Und Wegen Feedback .. gerne geschehen.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

yersinia

Ja, das TAR Archiv habe ich schon öfters entpackt - von daher scheint das Backup mMn integer zu sein.

Bezüglich Aufräumen und Versionieren kann man so vorgehen - ich muss bei Gelegenheit mal schauen, ob und wie man das verändern kann. Allerdings habe ich keinen Bedarf (sprich: Lust) ein Script zu schreiben, welches die letzten Backups zählt...möglicherweise könnte sowas schon reichen:
ls -1t | tail -n +8 | xargs rm -f
von: https://www.ostechnix.com/find-delete-oldest-file-x-files-directory/
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Dirk070

Der Thread ist nun ein gutes Jahr alt, aber vielleicht ist ja die folgende Lösung mit einem DOIF von Nutzen:

UPDATE: Ergänzung der Abfrage, ob es überhaupt zu löschende Backups gibt if ($BackupsDelete > 0)

([00:10:00|1])
( {
## Backup Montag
fhem("backup");;

my $BackupDir = AttrVal("global", "backupdir", undef);;
my $BackupsCurrent = qx(ls -A "$BackupDir" | grep -c ".tar.gz");;
## Menge der vorzuhaltenden Backup-Files
my $BackupsMax = 12;;
my $BackupsDelete = $BackupsCurrent - $BackupsMax;;

Log 1, "<<<<<<<<<< Backup CleanUp START >>>>>>>>>>";;

Log 1, "Backup Directory: $BackupDir";;
Log 1, "Aktuelle Backups: $BackupsCurrent";;
Log 1, "Zu löschende Backups: $BackupsDelete";;
Log 1, "Liste der zu löschenden Backup-Files:";;

## Ausgabe der zu löschenden Files
if ($BackupsDelete > 0)
{
my $FilesDel = qx(ls -d "$BackupDir/"* | grep ".tar.gz" | head -$BackupsDelete);;
Log 1, $FilesDel;;
## Files löschen
my $BackupDelete = qx(ls -d "$BackupDir/"* | grep ".tar.gz" | head -$BackupsDelete | xargs rm);;
}
Log 1, "<<<<<<<<<< Backup CleanUp ENDE >>>>>>>>>>";;
} )

oli_bru

Hi, cool - danke für die Ergänzung!

Funzt bei mir  8)

Kurze Ergänzung noch von meiner Seite: Es muss natürlich in der Definition von global das Verzeichnis mit "attr global ./backup" hinterlegt worden sein.
FHEM auf PI 2, Homematic Wired IO Board auf Hutschiene, Div. Homematic Komponenten, Froggit Wetterstation HP1000

Mihca

Prima Script! Danke. Nachdem es erst bei mir nicht funktionierte, da ich über Global kein "backupdir" definiert habe, habe ich in Zeile 6 anstatt "undefined" das Standad Backup-Verzeichnis "/opt/fhem/backup" ergänzt:

([00:10:00|1])
( {
## Backup Montag
fhem("backup");;

my $BackupDir = AttrVal("global", "backupdir", "/opt/fhem/backup");;
my $BackupsCurrent = qx(ls -A "$BackupDir" | grep -c ".tar.gz");;
## Menge der vorzuhaltenden Backup-Files
my $BackupsMax = 12;;
my $BackupsDelete = $BackupsCurrent - $BackupsMax;;

Log 1, "<<<<<<<<<< Backup CleanUp START >>>>>>>>>>";;

Log 1, "Backup Directory: $BackupDir";;
Log 1, "Aktuelle Backups: $BackupsCurrent";;
Log 1, "Zu löschende Backups: $BackupsDelete";;
Log 1, "Liste der zu löschenden Backup-Files:";;

## Ausgabe der zu löschenden Files
if ($BackupsDelete > 0)
{
my $FilesDel = qx(ls -d "$BackupDir/"* | grep ".tar.gz" | head -$BackupsDelete);;
Log 1, $FilesDel;;
## Files löschen
my $BackupDelete = qx(ls -d "$BackupDir/"* | grep ".tar.gz" | head -$BackupsDelete | xargs rm);;
}
Log 1, "<<<<<<<<<< Backup CleanUp ENDE >>>>>>>>>>";;
} )
Viele Grüße
Achim
__________
Kein Fehler ist so dumm, dass man ihn nicht machen könnte.
Raspi Ubuntu 22.04 Perl 5.34, Rollo-, Sonnen-, Licht-, Heizungs-, Poolsteuerung, Energiebilanzen -- HomeMatic, FS20, ESP/Tasmota/ESPEasy, CUL868v3 USB, MAX! Cube LAN mit CUL-Firmware HomeMatic

Eistee

Mal eine blöde Frage. Warum nutzt Ihr nicht die Versionsverwaltung des Synology NAS? Ich sichere einfach mein komplette Filesystem mit rsync immer an den gleichen Ort. Heißt dort liegt der letzte stand. Und bei bedarf kann ich auch auf ältere Stände über die Versionsverwaltung zugreifen. Rsync hat außerdem den vorteil das nur geänderte Dateien neu übertragen werden müssen. Den rsync Befehl startet der PI einfach über cron. Da muss noch nicht mal FHEM zu laufen.
0 0 * * * /usr/bin/rsync -avz --delete --exclude="tmp" --exclude="sys" --exclude="lost+found" --exclude="mnt" --exclude="proc" --exclude="dev" --exclude="media" / rsync://admin@diskstation/Backup-Eistee/fhem --password-file ~/rsync.pwd

Wernieman

das ist aber nicht "Versionsverwaltung" der Synology, sondern von rsync ...

Gibt übrigens mehrere Software, die genau auf so etwas aufbauen: dirvish, rsnapshot ..... (und mehrere, die ich vergessen habe). Hier mache ich es mit dirvish.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Eistee

Das sichern mache ich mit rsync.

Das Versionsbackup macht die Versionsverwaltung auf dem NAS.


Das eine hat mit dem anderen nichts zu tun. Aktualisiert rsync eine Datei dann stehen bei mir bis zu 8 ältere Versionen der Datei bereit die ich bei bedarf Wiederherstellen kann.

CoolTux

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

Mihca

#12
Zitat von: Eistee am 14 September 2020, 11:51:13
Mal eine blöde Frage. Warum nutzt Ihr nicht ...

Ich betreibe 3 Fhem-Systeme, davon eins bei mir zuhause auf einem NUC, der backups wöchentlich lokal und täglich auf einem Synology sichert  https://www.meintechblog.de/2015/05/fhem-howto-automatisches-backup-auf-externem-nas/. Für diesen gilt für die lokalen wöchentlichen backups die Aussage, dass das Attribut "backupdir" nicht gesetzt ist.

Die 2 anderen Fhem-Systeme sind stand-alone Raspberries in entfernten Immobilien, die Fhem-backups auf einer per USB angeschlossenen SSD speichern. Wenn mal wieder die SD-Card mit dem Raspbian den Geist aufgibt (ist schon eine Heavy Duty Card), wird diese durch eine vorhandene Kopie ersetzt und das letzte Fhem-backup zurückgespielt. Das ist für diesen Anwendungsfall mE die einfachste Lösung.
Viele Grüße
Achim
__________
Kein Fehler ist so dumm, dass man ihn nicht machen könnte.
Raspi Ubuntu 22.04 Perl 5.34, Rollo-, Sonnen-, Licht-, Heizungs-, Poolsteuerung, Energiebilanzen -- HomeMatic, FS20, ESP/Tasmota/ESPEasy, CUL868v3 USB, MAX! Cube LAN mit CUL-Firmware HomeMatic

Otto123

#13
Ich habe den Code aus #7 mal noch etwas gerafft und vor allem den Filter für die Backups an eine Stelle am Anfang gepackt und etwas "schärfer" gemacht da bei mir auch ein paar Backups dort landen die nur nach der Installation entstehen und nie gelöscht werden sollen:
{
my $BackupDir = AttrVal("global", "backupdir", "backup");;
$BackupDir.="/FHEM-*.tar.gz";;
my $BackupsMax = 12;;
my $BackupsCurrent = qx(ls -A $BackupDir | wc -l);;
my $BackupsDelete = $BackupsCurrent - $BackupsMax;;
if ($BackupsDelete > 0)
  {
    my $FilesDel = join "|",split "\n",qx(ls -d $BackupDir | head -$BackupsDelete);;
    my $BackupDelete = qx(ls -d $BackupDir | head -$BackupsDelete | xargs rm);;
    if ($BackupDelete eq "") {Log 1, "Es wurden $BackupsDelete alte Backupfiles gelöscht: $FilesDel"} else {Log 1, "Es trat ein Fehler auf $BackupDelete"};;
  }
}

Edit: Die LogAusgabe ist noch unsauber, da muss ich noch nachbessern :) done

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

cmonty14

Zitat von: Otto123 am 17 September 2020, 12:15:58
Ich habe den Code aus #7 mal noch etwas gerafft und vor allem den Filter für die Backups an eine Stelle am Anfang gepackt und etwas "schärfer" gemacht da bei mir auch ein paar Backups dort landen die nur
Edit: Die LogAusgabe ist noch unsauber, da muss ich noch nachbessern :) done

Gruß Otto

Hallo Otto,
könntest du bitte erläutern, was in FHEM angelegt werden muss um diesen Code für Backup-Cleanup auszuführen?

Danke.

Otto123

Hi,

das ist nur ein Stück Perlcode, der ist so wie er ist zum Test für die FHEM Kommandozeile geeignet (nicht für die Raw Def, da müssten noch \ ans Zeilenende).
Das kann man mit "irgendwas" starten, wie es beliebt: Zeitgesteuert mit einem DOIF ähnlich wie in #5 oder einem at.
Man kann das in eine Perl Sub packen die man nach dem Backup aufruft, dann muss man die Anzahl der Semikolon jeweils halbieren (nur eins schreiben)

Ich bin mir selbst noch nicht ganz sicher wie ich das verankere, ich hatte zu dem Zeitpunkt nur zufällig ein paar Systeme "in der Hand" wo ich das dringen machen musste, weil sich die Backups seit 3 Jahren häuften und die SD Card kurz vor voll war.

Ich würde das eher in größeren Abständen aufrufen ...

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

cmonty14

Hallo Otto,

ganz offen gesagt: ich habe nicht verstanden, wie dies umzusetzen ist.
Meine Kenntnisse in perl reichen hier offensichtlich nicht aus.

Aber ich habe einen Verbesserungsvorschlag.
Üblicherweise beinhaltet einen Backup-Strategie eine Retention-Time.
Lässt sich eine Funktion bauen, die
- prüft, welche Retention-Time für ein Backup definiert ist
- abhängig von dem Prüfergebnis, d.h. Retention-Time überschritten, das Log entfernt?

Gruß
Thomas

Otto123

Hallo Thomas,

sicher kann man eine solche Funktion bauen - das war hier aber nicht die Frage. Ich habe nur ein Stück Perlcode getestet und aus meiner Sicht etwas verbessert.

Allerdings verstehe ich nicht, was dein zweiter Punkt für einen Sinn ergeben soll? Das Thema war löschen alter Backups und nicht löschen alter Logs
Zitat- abhängig von dem Prüfergebnis, d.h. Retention-Time überschritten, das Log entfernt?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

MadMax-FHEM

Für das Löschen alter Logs bietet doch fhem selbst Mechanismen...

narchive etc.

https://wiki.fhem.de/wiki/Logfiles_archivieren

Gruß, Joachim

P.S.: und mit diesem Beitrag bin ich dann auch gleich "Mitleser" ;)
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Dirk070

Zitat von: cmonty14 am 04 Oktober 2020, 10:49:11
Hallo Otto,
könntest du bitte erläutern, was in FHEM angelegt werden muss um diesen Code für Backup-Cleanup auszuführen?

Danke.

Wenn ich mich einmischen darf  ;)

Definiere einen DOIF in FHEM und packe dort das Coding rein.

Dann die folgenden Attribute (als Attribut-Wert-Päärchen):

do  always

icon  system_backup

stateFormat  next backup: timer_01_c01


Das Icon ist natürlich reine Optik  :)

So läuft das Script jeden Montag um 00:10

Helmi55

@yersina
Servus
habe versucht nach deiner Anleitung meine alten Backupfiles in FHEM zu löschen
defmod di_DelBU DOIF ([09:57:00]) \
("find /opt/fhem/backup -type f -mtime +1 -delete") DOELSE
attr di_DelBU do always


Leider werden die Files älter 1 Tag nicht gelöscht.
Hab ich was falsch verstanden oder etwas falsch gemacht?

Danke dir
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Otto123

#21
Hallo Helmut,

der Code selbst funktioniert einwandfrei, aber Fehlerausgaben sollten im Log landen. Steht da was?
Was bekommst Du mit dem Befehl in der FHEM Kommandozeile zurück.
{qx(find /opt/fhem/backup -type f -mtime +1 -ls)}

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Helmi55

Servus Otto

263388  37452 -rw-r--r--   1 fhem     dialout  38346997 Mär 18 10:34 /opt/fhem/backup/FHEM-20210318_103435.tar.gz


Ist das ein Berechtigungsproblem? Gehört  fhem - dialaut?

Gruß
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Wernieman

Wenn User:FHEM ist es kein Berechtigungsproblem. Denn schließlich darf der User fhem in Deinem Beispiel "rw".

Es ist ein Gängiger Irrglaube, das als Gruppe immer "dialout" sein muß. Auf vielen System ist die default Gruppe beim user fhem sogar "fhem" ..



Nächste Frage: ein backup anlegen funktioniert doch?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Otto123

Berechtigung war meine Vermutung, sieht aber richtig aus - ist es also offenbar nicht.
Im Log steht nichts?

Wenn Du ein Terminal aufmachst und den Befehl mal dort eingibst?

sudo -su fhem find /opt/fhem/backup -type f -mtime +1 -delete

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Helmi55

HI Otto

Danke für deine Hilfe.
Im Terminal funktioniert der Befehl und ich habe dieses DOIF nun in einem meiner 2 ProdSystemen getestet und hier funktioniert es.
Anscheinend ist da was im Testsystem schiefgelaufen.......
Werde das Testsystem neu aufsetzen

Nice weekend
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Otto123

#26
Hallo,

da ich irgendwie Bedenken habe jeden Tag etwas zu löschen und dann wieder zu beschreiben (damit nicht das gleiche passiert, wie wenn man jeden Tag mit den Schuhen über die gleiche Stelle schlurft) habe ich mal die Logik etwas erweitert:
Ein Dummy zur Ansicht und ein notify (kann man anders stricken - war zum testen)
Die Backups werden - bis auf die letzten 12 - erst gelöscht wenn die Platte zu 2/3 gefüllt ist. Das Ende der Backuproutine welches die Backups auf den externen Server schiebt, triggert diesen Vorgang.
defmod n_cleanupBackup notify BackupFhem:gesichert {\
my $BackupDir = AttrVal("global", "backupdir", "backup");;\
$BackupDir.="/FHEM-*.tar.gz";;\
my $BackupsMax = 12;;\
my $BackupsCurrent = qx(ls -A $BackupDir | wc -l);;\
my $BackupsDelete = $BackupsCurrent - $BackupsMax;;\
my @array=(split ' ',qx(df $BackupDir |sed -e '1d'));;\
$array[-2]=~ s/\D//g;;\
fhem("setreading BackupFhem percent $array[-2];;\
   setreading BackupFhem used $array[-3];;\
   setreading BackupFhem free $array[-4];;\
   setreading BackupFhem size $array[-5]");;\
if ($BackupsDelete > 0 and $array[-2] > 66)\
  {\
    my $FilesDel = join "|",split "\n",qx(ls -d $BackupDir | head -$BackupsDelete);;\
    my $BackupDelete = qx(ls -d $BackupDir | head -$BackupsDelete | xargs rm);;\
    if ($BackupDelete eq "") {Log 1, "Es wurden $BackupsDelete alte Backupfiles gelöscht: $FilesDel"} else {Log 1, "Es trat ein Fehler auf $BackupDelete"};;\
  }\
}
attr n_cleanupBackup room backup

defmod BackupFhem dummy
attr BackupFhem comment percent:gesichert {my $s=(split ' ',qx(df ./backup |sed -e '1d'))[-2] ;;$s=~ s/\D//g;;$s}
attr BackupFhem room backup
attr BackupFhem userReadings platte:gesichert {qx(df ./backup |sed -e '1d')}


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Helmi55

Hallo Otto
Danke. ich hatte vergessen zu erwähnen das ich das Backup auf Synology mit dem SSFile mache und ich habe mir nur
hier den Teil zum Löschen der alten BU auf dem RPi "geklaut"
Werde hier natürlich in der Produktion auch noch mehrere Tage aufheben - war nur zum Testen mit dem "1"

Gruß
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/