Hallo zusammen,
ich hab mir die halbe die Nacht um die Ohren geschlagen und komme nicht weiter. Ziel ist es ein automatisiertes Backup von FHEM jede Nacht durchzuführen. Gehalten habe ich mich an folgende Anleitung:
https://www.meintechblog.de/2015/05/fhem-howto-automatisches-backup-auf-externem-nas/
und folgendes BackupScript das ich an meine Bedingungen angepasst habe:
#!/bin/bash
mountIp="192.168.2.3"
mountDir="fhembackup"
mountUser="fhem"
mountPass="meinpasswort"
mountSubDir="rpi/fhem"
localMountPoint="/Q/backup"
#optional
backupsMax="0"
localBackupDir="/backup"
pushoverUser=""
pushoverToken=""
###################################
perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Backup info backup starting now"
if [ ! -e "$localBackupDir" ]
then
echo "$localBackupDir wird erstellt"
mkdir -p "$localBackupDir"
else
echo "$localBackupDir bereits vorhanden"
fi
tar --exclude=backup -cvzf "/$localBackupDir/$(date +%y%m%d_%H%M%S)_fhem_backup.tar.gz" "/opt/fhem" &>/dev/null
if ! ping -c 1 $mountIp
then
echo "$mountIp nicht erreichbar, stop"
perl /opt/fhem/fhem.pl 7072 "set FHEM.Backup error"
perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Backup info $mountIp not found"
exit
else
echo "$mountIp erreichbar"
fi
localIp=$(hostname -I|sed 's/\([0-9.]*\).*/\1/')
if [ ! -e "$localMountPoint" ]
then
echo "$localMountPoint wird erstellt"
mkdir -p "$localMountPoint"
else
echo "$localMountPoint bereits vorhanden"
fi
if [ "$(ls -A $localMountPoint)" ]
then
echo "$localMountPoint nicht leer, kein Mounten notwendig"
else
echo "$localMountPoint leer, Mounten starten"
vorhanden="0"
while read line
do
mountComplete="//$mountIp/$mountDir $localMountPoint cifs username=$mountUser,password=$mountPass,iocharset=utf8,sec=ntlm 0 0"
echo "mountComplete: $mountComplete"
if [ `echo "$line" | grep -c "$mountComplete"` != 0 ]
then
echo "/etc/fstab: Eintrag bereits vorhanden: $mountComplete"
vorhanden="1"
break
fi
done < "/etc/fstab"
if [ "$vorhanden" != "1" ]
then
echo "/etc/fstab: Eintrag wird ergänzt: $mountComplete"
echo "$mountComplete" >> "/etc/fstab"
fi
echo "Mounts werden aktualisiert"
mount -a
sleep 3
fi
if [ "$(ls -A $localMountPoint)" ]
then
if [ ! -e "$localMountPoint/$mountSubDir/$localIp" ]
then
mkdir -p "$localMountPoint/$mountSubDir/$localIp"
else
echo "$localMountPoint/$mountSubDir/$localIp existiert bereits"
fi
find "$localBackupDir" -name '*fhem_backup.tar.gz' | while read file
do
fileSize="0"
fileSizeMB=$(du -h $file)
fileSizeMB=${fileSizeMB%%M*}
filename=${file##*/}
echo "$filename ($fileSizeMB MB) wird in den Backupordner verschoben"
if [[ "$pushoverToken" != "" && "pushoverUser" != "" ]]
then
curl -s -F "token=$pushoverToken" -F "user=$pushoverUser" -F "title=FHEM $localIp" -F "message=Backup mit $fileSizeMB MB wird erstellt" https://api.pushover.net/1/messages.json
fi
#mv "$file" "$localMountPoint/$mountSubDir/$localIp/$filename"
cp "$file" "$localMountPoint/$mountSubDir/$localIp/$filename"
rm "$file"
perl /opt/fhem/fhem.pl 7072 "set FHEM.Backup off"
perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Backup backup $filename"
perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Backup backupMB $fileSizeMB"
perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Backup info backup done"
done
else
echo "Mounten hat anscheinend nicht geklappt, skip."
exit
fi
#Löschen alter Backups
if [[ "$backupsMax" != "" && "$backupsMax" != "0" ]]
then
perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Backup backupFilesMax $backupsMax"
backupsCurrent=`ls -A "$localMountPoint/$mountSubDir/$localIp" | grep -c "_fhem_backup.tar.gz"`
backupsDelete=$(($backupsCurrent-$backupsMax))
if [ "$backupsDelete" -gt "0" ]
then
echo "$backupsCurrent Backups vorhanden - nur $backupsMax aktuelle Backups werden vorgehalten - $backupsDelete Backups werden gelöscht"
ls -d "/$localMountPoint/$mountSubDir/$localIp/"* | grep "_fhem_backup.tar.gz" | head -$backupsDelete | xargs rm
else
echo "$backupsCurrent Backups vorhanden - bis $backupsMax aktuelle Backups werden vorgehalten"
fi
else
perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Backup backupFilesMax no limit"
fi
backupsCurrent=`ls -A "$localMountPoint/$mountSubDir/$localIp" | grep -c "_fhem_backup.tar.gz"`
perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Backup backupFiles $backupsCurrent"
echo "Mount wieder unmounten"
umount "$localMountPoint"
Wenn ich das Backupscript starte erhalte ich folgende Fehlermeldung in der kern.log
No dialect specified on mount. Default has changed to a more secure dialect, SMB2.1 or later (e.g. SMB3), from CIFS (SMB1). To use the less secure SMB1 dialect to access old servers which do not support SMB3 (or SMB2.1) specify vers=1.0 on mount.
Daraufhin habe ich die SMB Version in dem Script angepasst:
mountComplete="//$mountIp/$mountDir $localMountPoint cifs username=$mountUser,password=$mountPass,iocharset=utf8,vers=1.0,sec=ntlm 0 0"
Die Fehlermeldung im kern.log ist immer noch die selbe:
No dialect specified on mount. Default has changed to a more secure dialect, SMB2.1 or later (e.g. SMB3), from CIFS (SMB1). To use the less secure SMB1 dialect to access old servers which do not support SMB3 (or SMB2.1) specify vers=1.0 on mount.
Zum guten Schluss habe ich dann noch
sec=ntml
auf
sec=ntmlssp
ohne Erfolg umgestellt.
Was immer funktioniert ist wenn ich folgendes zum testen probiere:
sudo mount -t cifs -o user=fhem //192.168.2.3/fhembackup /mnt/testmountpoint
Wenn ich diesen Befehl absetzt kommt postwenden die Passwortabfrage und ich kann das mounten und habe Zugriff. Also ist das Share ja grundsätzlich erreichbar und mit den Anmeldedaten des Users scheint auch alles zu passen. Ich bin mit meinem Latein am Ende. Habt ihr eine Idee was ich noch prüfen könnte? Vielen Dank für eure Hilfe.
Grüße
sxx128
Schau mal hier rein.
https://r.tapatalk.com/shareLink/topic?url=https%3A%2F%2Fforum%2Efhem%2Ede%2Findex%2Ephp%3Ftopic%3D87803%2E0&share_tid=87803&share_fid=75100&share_type=t&link_source=app
(https://r.tapatalk.com/shareLink/topic?url=https%3A%2F%2Fforum%2Efhem%2Ede%2Findex%2Ephp%3Ftopic%3D87803%2E0&share_tid=87803&share_fid=75100&share_type=t&link_source=app)
Gesendet von meinem MI 9 mit Tapatalk
Und brauchst Du wirklich ein smb V1.0??
Geht nicht ein neueres?
Hallo zusammen,
nein ich brauch kein SMBV1 ich habe das aufgrund der Logeinträge einfach mal so probiert um zu einem Ergebnis zu kommen. Ich habe mir den verlinkten Thread angeschaut und folgendes in dem Script angepasst:
do
mountComplete="//$mountIp/$mountDir $localMountPoint cifs username=$mountUser,password=$mountPass,iocharset=utf8 0 0"
echo "mountComplete: $mountComplete"
Wenn ich das Backupscript händisch aussführe bekomme ich folgende Fehlermeldung:
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(16): Device or resource busy
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs
Im kern.log werde ich auch noch immer angemault das es Probleme gibt mit der SMB Version.
Das witzige ist aber das Backup wird erstellt und die Backupfiles liegen auf dem NAS in dem entsprechenden Verzeichnis? Jetzt bin ich völlig verwirrt. Habt ihr eine Idee ?
Grüße
sxx128
Ich hab' das mal mit autofs gelöst gehabt: automatisches Backup + Kopie auf NAS + löschen alter Backups (https://forum.fhem.de/index.php/topic,87669.0.html)
Zitat von: sxx128 am 20 April 2020, 08:21:42
Hallo zusammen,
nein ich brauch kein SMBV1 ich habe das aufgrund der Logeinträge einfach mal so probiert um zu einem Ergebnis zu kommen. Ich habe mir den verlinkten Thread angeschaut und folgendes in dem Script angepasst:
do
mountComplete="//$mountIp/$mountDir $localMountPoint cifs username=$mountUser,password=$mountPass,iocharset=utf8 0 0"
echo "mountComplete: $mountComplete"
Wenn ich das Backupscript händisch aussführe bekomme ich folgende Fehlermeldung:
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(16): Device or resource busy
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs
Im kern.log werde ich auch noch immer angemault das es Probleme gibt mit der SMB Version.
Das witzige ist aber das Backup wird erstellt und die Backupfiles liegen auf dem NAS in dem entsprechenden Verzeichnis? Jetzt bin ich völlig verwirrt. Habt ihr eine Idee ?
Grüße
sxx128
Hatte das gleiche Problem nach einem System update bzw neu Installation. Von jessie nach buster. Danach funktionierte das erstmal nicht mehr.
Schaue anbei mal in den genannten thread. Danach funktionierte es bei mir wieder. Hatte mich auch an die gleiche Anleitung gehalten.
Gesendet von meinem MI 9 mit Tapatalk
Hallo
in den von dir verlinkten ?
Grüße
und Danke für die Hilfe ..
sxx128
Zitat von: sxx128 am 20 April 2020, 07:36:37
sudo mount -t cifs -o user=fhem //192.168.2.3/fhembackup /mnt/testmountpoint
Wenn ich diesen Befehl absetzt kommt postwenden die Passwortabfrage und ich kann das mounten und habe Zugriff. Also ist das Share ja grundsätzlich erreichbar und mit den Anmeldedaten des Users scheint auch alles zu passen. Ich bin mit meinem Latein am Ende. Habt ihr eine Idee was ich noch prüfen könnte? Vielen Dank für eure Hilfe.
Grüße
sxx128
Dann mach doch den Mount über die fstab (https://heinz-otto.blogspot.com/2018/02/windows-server-freigabe-auf-dem.html) hinterlege ordentlich Deine credentials. Da braucht es dann auch kein sudo und keine credentials im Script.
Ich habe das mit dem Backup auch mal gemacht, mein Script (https://heinz-otto.blogspot.com/2019/04/backup-wenn-der-server-kommt.html)braucht kein Telnet was ja per default nicht mehr definiert ist. Nur falls Du irgendwann mit dem hier nicht weiter kommst.
Gruß Otto
Zitat von: sxx128 am 20 April 2020, 09:17:29
Hallo
in den von dir verlinkten ?
Grüße
und Danke für die Hilfe ..
sxx128
Jepp. Hier in der 2. Antwort
Gesendet von meinem MI 9 mit Tapatalk
Hallo ihr zwei,
schau ich mir alles gleich an. Vielen Dank ihr zwei.
Grüße
sxx128
Hi,
ich nutze auch das Backup Skript von https://www.meintechblog.de/2015/05/fhem-howto-automatisches-backup-auf-externem-nas/ (https://www.meintechblog.de/2015/05/fhem-howto-automatisches-backup-auf-externem-nas/).
Der BAckup Ziel-Ordner ist euf einem Windows 10 PC. Dort musste ich den SMB1 Client nachinstallieren.
Ich hatte mehrere Probleme mit dem Skript, die ich mit paar Workaround lösen konnte.
Hier meine Vorgehensweise:
Ich habe das Skript manuell ausgeführt um die Fehlermeldungen zu erhalten.
sudo /opt/fhem/FHEM/backup.sh
Dort wurde der Fehler -22 (Invalid parameter) angezeigt.
Ich habe festgestellt, dass in der /etc/fstab ein falscher Mount Befehl eingetragen war.
Hiermit kann man sich das anzeigen lassen.
cat /etc/fstab
Ich hatte beim ersten Ausführen des Skripts einen Benutzernamen mit Leerzeichen, was nicht so einfach funktioniert.
Ich nutze übrigens:
mountComplete="//$mountIp/$mountDir $localMountPoint cifs username=$mountUser,password=$mountPass,iocharset=utf8 0 0"
Anscheinend wird der Eintrag in der /etc/fstab beim Aufrufen des Skripts nicht überschrieben bzw. nicht neu geschrieben.
Ich habe den Eintrag deshalb manuell angepasst.
Datei modifizieren mit
sudo nano /etc/fstab
Nun bekam ich die Fehlermeldung, dass das Mounten nicht geklappt hat.
Allerdings habe ich herausgefunden, dass der Ziel-Ordner gemountet ist.
ls -lha /etc/fstab
Das Skript hat eine Codezeile, die prüft, ob das Mounten erfolgreich war.
if [ "$(ls -A $localMountPoint)" ]
Dies funktioniert anscheinend nicht richtig. Als Workaround habe ich die Überprüfung im Skript auskommentiert. Ich gehe einfach davon aus, dass das Mounten klappt. Nicht schön, aber geht.
#if [ "$(ls -A $localMountPoint)" ]
#then
if [ ! -e "$localMountPoint/$mountSubDir/$localIp" ]
then
mkdir -p "$localMountPoint/$mountSubDir/$localIp"
else
echo "$localMountPoint/$mountSubDir/$localIp existiert bereits"
fi
find "$localBackupDir" -name '*fhem_backup.tar.gz' | while read file
do
fileSize="0"
fileSizeMB=$(du -h $file)
fileSizeMB=${fileSizeMB%%M*}
filename=${file##*/}
echo "$filename ($fileSizeMB MB) wird in den Backupordner verschoben"
if [[ "$pushoverToken" != "" && "pushoverUser" != "" ]]
then
curl -s -F "token=$pushoverToken" -F "user=$pushoverUser" -F "title=FHEM $localIp" -F "message=Backup mit $fileSizeMB MB wird erstellt" https://api.pushover.net/1/messages.json
fi
#mv "$file" "$localMountPoint/$mountSubDir/$localIp/$filename"
cp "$file" "$localMountPoint/$mountSubDir/$localIp/$filename"
rm "$file"
perl /opt/fhem/fhem.pl 7072 "set ItemBackup off"
perl /opt/fhem/fhem.pl 7072 "setreading ItemBackup backup $filename"
perl /opt/fhem/fhem.pl 7072 "setreading ItemBackup backupMB $fileSizeMB"
perl /opt/fhem/fhem.pl 7072 "setreading ItemBackup info backup done"
done
#else
#echo "Mounten hat anscheinend nicht geklappt, skip."
#exit
#fi
Jetzt funktioniert auch das Backup. :)
Allerdings wäre es toll, wenn jemand weiß, wie ich die Problme richtig gelöst bekomme.
1) Was muss man ändern, dass der Eintrag in der /etc/fstab bei jedem Skript-Aufruf aktualisiert wird?
2) Was muss man ändern, damit die Überprüfung des Mount-Status richtig funktioniert?
VG
Forcin
WENN Du das Script schon mit root startest, warum ändert er dann die fstab??
Sauberer wäre es (wenn schon root), mit einem "manuellen" mount Befehl ...
Hallo Forcin,
ich bin am analysieren und antworten, bis dahin ein paar grundlegende Dinge und zwei Fragen.
Für backup braucht man:
1. kein root
2. kein sudo
3. weder root noch sudo
Für eine Verbindung zu Windows 10 braucht man kein SMB1 es sei denn man hat ein horn altes System auf dem FHEM läuft.
Auf was für einem System läuft FHEM?
Wenn man den Eintrag in der fstab richtig macht, muss den kein Script überschreiben!
Wie sieht der Eintrag in der fstab jetzt aus?
Zusatzfrage: Ist der Windows 10 PC immer an?
Gruß Otto
Damit diese Bedingung wahr wird:
[ "$(ls -A $localMountPoint)" ]
Muss der Pfad in $localMountPoint existieren (wird weiter oben im Script geprüft) und er darf nicht leer sein. Bedeutet in der Annahme des Scripts: wenn nur der Mountpoint existiert aber der mount nicht geklappt hat ist die Bedingung falsch.
Die Bedingung ist aber auch falsch, wenn ein leerer Pfad gemountet wird - also Du hast auf Windows den Pfad ttt frei gegeben -> \\win\ttt, mountest diesen Pfad nach /mnt dann ergibt ls -A /mnt nichts = falsch
Also damit prüft man mMn nicht den Erfolg des mountens sondern ob ein Pfad leer ist oder nicht :-X
Eigentlich kann man den mount Befehl an sich auf Erfolg prüfen, muss mal schauen hab ich schon mal gemacht.
Gruß Otto
bei bash kannst Du den Fehlercode abfrage ... $?
ich würde den mount ordentlich (in fstab) machen und dann einfach die Form verwenden:
if mount /mnt/sicherung/ ;then echo Erfolg;else echo Fehler;fi
Mir gefällt einiges nicht an dem Artikel und dem Script - ich tue mich da immer schwer
Aber ich hoffe auch noch auf Infos.
Gute Nacht
Otto
Kann denn dann jemand der Ahnung hat, mal eine komplette Lösung mit geringen Aufwand bereit stellen, mir der es möglich ist, das komplette fhem Verzeichnis auf einen externen Datenträger bzw nas durchzuführen?
Habe mich an meintechblog gehalten, und hatte nach einem Systemwechsel auf bisher auch meine Probleme gehabt.
Gruß und danke
Sascha
Gesendet von meinem MI 9 mit Tapatalk
Zitat von: sash.sc am 25 April 2020, 10:40:52
Kann denn dann jemand der Ahnung hat, mal eine komplette Lösung mit geringen Aufwand bereit stellen, mir der es möglich ist, das komplette fhem Verzeichnis auf einen externen Datenträger bzw nas durchzuführen?
Disclaimer: ich gehöre nicht zu den Leuten mit Ahnung. Ich kann aber lesen und eigene Erfahrungen teilen.
Erstens würde ich nicht den fhem Ordner im laufenden Betrieb kopieren. Dafür ist ein FHEM-Backup besser geeignet.
Zweitens, warum nutzt du nicht autofs? Das macht das mounten automatisch wenn der Zielordner verfügbar ist. Beschrieben habe ich das hier: automatisches Backup + Kopie auf NAS + löschen alter Backups (https://forum.fhem.de/index.php/topic,87669.0.html). Natürlich muss man das an seine eigenen Gegebenheiten anpassen.
Bei mir hat das drei Systemupdates überlebt. Man muss allerdings die Konfiguration(en) vorher sichern und die Pakete nachinstallieren (eine Notiz hilft da auch immer).
Zitat von: Otto123 am 24 April 2020, 23:28:11
Mir gefällt einiges nicht an dem Artikel und dem Script - ich tue mich da immer schwer
Vielleicht weil das Script von dort voller race conditions ist, die Qualität des Codes auch ansonsten miserabel und niemand jemals eine Pushover-Nachricht bekommen wird (Hint: L91)? Hat aber 5 Jahre keinen gestört, insofern sollte man sich vielleicht ein Skript suchen, das vom Ersteller noch supported wird.
Also Anfangs hat Pushover damit funktioniert.
Hab das Script aber schon vor langem umgebaut. (alles was mount / unmount ist raus, DOIF anstatt AT, Telegrambenachrichtigung etc.
Ob der Code grottig ist kann ich nicht beurteilen. Meine Modifikation läuft aber stabil. :-)
Hab mir vor kurzen erst eine Meshup davon mit einem DD Script gemacht.
Wenn es ein besseres Script gibt tausche ich es aber auch gerne aus. :-)
Zitat von: sash.sc am 25 April 2020, 10:40:52
Kann denn dann jemand der Ahnung hat, mal eine komplette Lösung mit geringen Aufwand bereit stellen, mir der es möglich ist, das komplette fhem Verzeichnis auf einen externen Datenträger bzw nas durchzuführen?
Hallo Sascha,
ja, hier mein Script zum Setup auf GitHub (https://github.com/heinz-otto/raspberry/blob/master/configBackupFhem2Cifs.sh). Das muss etwas im Script konfiguriert werden, ist im Script knapp beschrieben.
Der ganze Ablauf ist hier (https://heinz-otto.blogspot.com/2019/04/backup-wenn-der-server-kommt.html) beschrieben.
Ich verwende backup von fhem wie es ist und schaufle den backup Ordner wenn ich die NAS aktiviere dorthin. Es ist also ein zweigeteilter Vorgang. Kann man auch so gestalten, das zweiteres unabhängig von FHEM läuft.
Gegenüber dem hier diskutierten Script von MeinTechblog fehlt pushover und löschen alter Backups.
Das Script von MeinTechblog läuft andauernd mit sudo, das finde ich äußert bedenklich und vor allem völlig unnötig.
Mein Setup script läuft einmalig mit sudo, das aktive backup läuft nur mit user fhem ohne sudo.
Gruß Otto
Es sehr viele verschiedene Konfigurationen gibt, wir eigentlich keiner "sein" Backupscript veröffentlichen. Ich z.B. habe Backup und fhem "fast" getrennt. "fast" insofern, das die Backuppllatten (über USB) an Schaltbare Steckdosen hängt, die eben FHEM schaltet.So sind die Platten nur aktiv, wenn Backup gemacht wird.
Aber es ist eben nicht für die Allgemeinheit so verständlich und gemacht ..... also ist eine Veröffentlichung eher "kontraproduktiv" ...
Zitat von: Frank_Huber am 25 April 2020, 11:20:55
Also Anfangs hat Pushover damit funktioniert.
Ich muss mich da auch korrigieren: Es funktioniert, aber die Checks auf die Credentials funktioniert nicht (L91).
Komm Christoph, wegen dem einen Dollar! Der macht das Kraut doch nicht fett :)
Zitat von: Otto123 am 25 April 2020, 14:18:32
Komm Christoph, wegen dem einen Dollar! Der macht das Kraut doch nicht fett :)
Wer den Dollar nicht ehrt, ist der Pushover-Nachricht nicht wert!
Kennst du shellcheck (https://www.shellcheck.net/)? Hätte diesen Fehler auch gefunden (und noch ein paar andere Stellen).
Hallo!
Danke für eure Antworten.
Ich fange mit FHEM gerade erst an. Deshalb kenne ich mich noch nicht so gut aus.
Zitat von: Wernieman am 24 April 2020, 15:52:44
WENN Du das Script schon mit root startest, warum ändert er dann die fstab??
Sauberer wäre es (wenn schon root), mit einem "manuellen" mount Befehl ...
Ich habe mich mit dem Skript noch nicht so weit auseinander gesetzt, dass ich sicher sagen kann, was das Skript macht.
Es schreibt allerdings einen Mount Befehl in die fstab. Wenn der einmal drin ist, wird er nicht mehr aktualisiert.
Eventuell ist das so gedacht. Ich hätte jedoch erwartet, dass der entsprechende Mount Befehl aktualisiert wird.
Da ich beim ersten Mal einen Fehler im Mount-Befehl hatte, gab es beim Mount-Versuch einen Invalid parameter Fehler.
Ich musste den fstab Eintrag manuell ändern, da das Skript diesen nicht aktualisiert.
Zitat von: Otto123 am 24 April 2020, 18:28:42
Hallo Forcin,
ich bin am analysieren und antworten, bis dahin ein paar grundlegende Dinge und zwei Fragen.
Für backup braucht man:
1. kein root
2. kein sudo
3. weder root noch sudo
Für eine Verbindung zu Windows 10 braucht man kein SMB1 es sei denn man hat ein horn altes System auf dem FHEM läuft.
Auf was für einem System läuft FHEM?
Wenn man den Eintrag in der fstab richtig macht, muss den kein Script überschreiben!
Wie sieht der Eintrag in der fstab jetzt aus?
Zusatzfrage: Ist der Windows 10 PC immer an?
Gruß Otto
Ich habe die Seite gefunden und benutze das Skript wie es ist, da ich nichts anderes und noch nicht genug Wissen habe und mir ein eigenes Skript zu schreiben.
FHEM läuft eine RaspPi mit der aktuellsten Software.
Der Win10 PC ist nicht immer an.
Ich starte das Backup momentan manuell über FHEM. Ich hatte da Skript nur über sudo manuell ausgeführt um mehr Fehlermeldungen zu erhalten.
SMB1 kann ich dann vom Win10 wieder runterschmeißen.
Zitat von: Otto123 am 24 April 2020, 19:42:17
Damit diese Bedingung wahr wird:
[ "$(ls -A $localMountPoint)" ]
Muss der Pfad in $localMountPoint existieren (wird weiter oben im Script geprüft) und er darf nicht leer sein. Bedeutet in der Annahme des Scripts: wenn nur der Mountpoint existiert aber der mount nicht geklappt hat ist die Bedingung falsch.
Die Bedingung ist aber auch falsch, wenn ein leerer Pfad gemountet wird - also Du hast auf Windows den Pfad ttt frei gegeben -> \\win\ttt, mountest diesen Pfad nach /mnt dann ergibt ls -A /mnt nichts = falsch
Also damit prüft man mMn nicht den Erfolg des mountens sondern ob ein Pfad leer ist oder nicht :-X
Eigentlich kann man den mount Befehl an sich auf Erfolg prüfen, muss mal schauen hab ich schon mal gemacht.
Gruß Otto
Der gemountete Ordner war leer. Deshalb gab die Überprüfung wohl false zurück.
Ich probiere das jetzt nochmal aus.
Danke für den Hinsweis.
Wenn ich Zeit finde, dann probiere ich dein Backup Skript mal aus.
Zitat von: Otto123 am 24 April 2020, 23:28:11
ich würde den mount ordentlich (in fstab) machen und dann einfach die Form verwenden:
if mount /mnt/sicherung/ ;then echo Erfolg;else echo Fehler;fi
Mir gefällt einiges nicht an dem Artikel und dem Script - ich tue mich da immer schwer
Aber ich hoffe auch noch auf Infos.
Gute Nacht
Otto
Den Befehl werde ich auch mal ausprobieren.
VG
Forcin
Das Script hat wenig mit FHEM sondern viel mit Linux zu tuen ...
Zitat von: Wernieman am 25 April 2020, 19:21:06
Das Script hat wenig mit FHEM sondern viel mit Linux zu tuen ...
Ja, hast recht. Allerdings kenne ich mich damit ebenso wenig aus.
Beruflich kenne ich mich zwar mit Microcontroller-Entwicklung unter C/C++ aus. Aber eher recht hardwarenah ohne ein Embedded Linux.
Und auf PC Ebene bin ich ein typischer Windows Nutzer.
Es gibt für mich viel zu lernen. ;)
@Christoph Ich kenne Spellcheck. Ich habe schon mal alle Empfehlungen von dem Tool umgesetzt und anschließend lief nix mehr. ::) Aber ich habe auch damit schon viel gelernt. ;)
Ich möchte mich auch nicht weiter mit dem Script von Meintechblog beschäftigen.
Mit etwas Abstand auf mein Script geschaut, würde ich noch ein paar Dinge verbessern und ergänzen.
@Forcin
Meine Empfehlung: probier mal mein Script. Falls ich was nicht komplett beschrieben habe, helfe ich Dir da gern.
Ich gehe bei meiner Einrichtung von einer unberührten fstab aus, das ist sicher nicht immer gegeben. Der Ansatz kommt daher, dass ich dieses Script gleich für die Grundinstallation verwende. Du musst also vor dem Test, deine fstab von unnötigen Einträgen bereinigen.
Ich mache da gerne jede Verbesserung rein, die anderen hilft.
Ich habe meinen Backupansatz darauf abgestellt, dass FHEM den Vorgang triggert wenn der externe Server verfügbar ist - passt also perfekt auf Deine Aussage: Der Win10 PC ist nicht immer an.
Gruß Otto