Hauptmenü

Tägliches FHEM Backup

Begonnen von michaelapp, 05 Januar 2017, 22:45:16

Vorheriges Thema - Nächstes Thema

thgorjup

#15
Ich sichere mein FHEM folgendermaßen direkt unter Linux. Die Dateien werden auf mein NAS gesichert, welches auf dem Pi immer gemountet ist.
Zunächst zwei Scripte im Verzeichnis ~/bin/ erstellen

1. Script [mount.sh]:

#!/bin/sh
mount|grep nas 2>/dev/null
if [ "$?" -eq 1 ]; then
  mount -t cifs -o username=hugo,password=mypassword //10.4.70.106/Harddisk/backup /mnt/nas
fi


2. Script [backup.sh]

#!/bin/bash

DATUM=$(date +%Y%m%d)

# Config und Zustand sichern
cp -f /opt/fhem/fhem.cfg /mnt/nas/fhem/fhem.cfg_${DATUM}
cp -f /opt/fhem/log/fhem.save /mnt/nas/fhem/

# FHEM komplett sichern
cd /mnt/nas/fhem
tar cvfz fhem_${DATUM}.tgz /opt/fhem/*

# Alte Dateien im Backup nach 60 Tagen loeschen
find /mnt/nas/fhem/fhem* -mtime +60 -exec rm -f {} \;


Anschließend noch die Cronjobs einrichten


* * * * * ~/bin/mount.sh
0 7 * * * ~/bin/backup.sh


FERTIG, das sieht dann in etwa so auf dem NAS aus:

root@pi2:~# ls -ltr /mnt/nas/fhem/
-rwxr-xr-x 1 root root   175830 Feb 25 07:00 fhem.save
-rwxr-xr-x 1 root root    74034 Feb 25 07:00 fhem.cfg_20170225
-rwxr-xr-x 1 root root 22944690 Feb 25 07:00 fhem_20170225.tgz
FHEM auf Ubuntu 18.04LTS, 2x nanoCUL, JeeLink, nanoPIR, MQTT, ESP-Easy, HUE.
Sensoren+Aktoren: HM, IT, Lacrosse, Multitrade-PIR, VU+, Somfy

franky08

@hobu
Genau darum geht es mir ja, ich WILL die alten Datensätze ja behalten!
VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

hobu

Zitat von: franky08 am 25 Februar 2017, 23:43:39
@hobu
Genau darum geht es mir ja, ich WILL die alten Datensätze ja behalten!
Davon ging ich aus. ;)
Ich meine den ganze. alten Krams, der durch Updates liegen bleibt.
Bsp.: Ein Modul in FHEM/ bekommt eine neue Nr, alte Verzeichnisse im restoreDir, etc. pp.
Raspberry Pi (Model B)
HM-CFG-USB, HM-CC-RT-DN, HM-LC-SW1-FM, HM-Dis-WM55, HM-FK-SCO

jnewton957

Zitat von: thgorjup am 25 Februar 2017, 21:14:53

2. Script [backup.sh]

#!/bin/bash
DATUM=$(date +%Y%m%d)
# Config und Zustand sichern
cp -f /opt/fhem/fhem.cfg /mnt/nas/fhem/fhem.cfg_${DATUM}
cp -f /opt/fhem/log/fhem.save /mnt/nas/fhem/
# FHEM komplett sichern
cd /mnt/nas/fhem
tar cvfz fhem_${DATUM}.tgz /opt/fhem/*
# Alte Dateien im Backup nach 60 Tagen loeschen
find /mnt/nas/fhem/fhem* -mtime +60 -exec rm -f {} \;



Hallo,
ich habe das mal für mich eingebaut und die Angaben /mnt... entsprechend für meinen nas (FritzNAS) angepasst.

Wenn ich jede Zeile (cp -f ....) einzeln auf dem raspi ausführen, klappt es.
rufe ich das backup.sh mit sudo bash /opt/fhem/FHEM/backup.sh auf, erhalte ich
cp: reguläre Datei ,,/media/Fritz.Nas/fhem.cfg\r" kann nicht angelegt werden: Ungültiger Dateideskriptor
cp: reguläre Datei ,,/media/Fritz.Nas/\r" kann nicht angelegt werden: Ungültiger Dateideskriptor


Was habe ich da nicht beachtet ?
Danke für die Hilfe

Jörg
FHEM6.2 auf Pi5
V 1.66 nanoCUL 433 (IT)
V 1.66 nanoCUL868 (HM)
sqlite3 LogDb
ELRO AB440, DECT200,  TFA30.3125, esp8266, HM, TabletUI, IR-Schreiblesekopf (Udo),tibber Pulse, Kostal Pico, cfos Wallbox, Modbus TCP

Otto123

Hallo Jörg,

sudo bash ist an der Stelle doch Unfug? fhem kann doch die Datei backup.sh aufrufen.

Aber der User fhem hat den Mountpoint /mnt/nas/fhem/... wahrscheinlich nicht. Den hat pi nehme ich an.

Zumindest meine Meinung als Linux Anfänger.  :D

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

Tomk

Zitat von: thgorjup am 25 Februar 2017, 21:14:53
Ich sichere mein FHEM folgendermaßen direkt unter Linux. Die Dateien werden auf mein NAS gesichert, welches auf dem Pi immer gemountet ist.
Zunächst zwei Scripte im Verzeichnis ~/bin/ erstelle

Hallo, ich bin nach genau dieser Methode vogegangen und mache damit tägliche Backups auf meine NAS funktioniert super, danke!
Aber ich musste gerade feststellen das (wahrscheinlich wenn das NAS Laufwerk nicht gemountet werden kann) die Backups im Root Verzeichnis landen und so über die letzten Jahre meine SD Karte gefüllt haben. Kann man dies unterbinden?

Danke vorab!

CoolTux

Einfach testen ob das Verzeichnis ein Mountpoint ist.

if [[ $(findmnt -M "$FOLDER") ]]; then
    echo "Mounted"
else
    echo "Not mounted"
fi
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