Backup-Skript geht nicht (IPS-Dienst auf Linux stoppen)

Hallo Zusammen,

ich habe gerade mal meine Backup-Art ändern wollen. Also von einem kompl. Image-Backup zur Sicherung des IPS-Ordners in eine Zip-Datei. (Und das aufs NAS geschoben…)

Aber: Ich kann aus IPS den IPS-Dienst nicht beenden. Ich benutze Linaro (Debian) auf dem Tinkerboard.
Das Skript schreibt je Wochentag eine Sicherung, dazu gibts ein zweites Skript das Wöchentlich sichert und dann pro Woche eine Sicherung vorhält.

Mein Skript sieht so aus - kurz und bündig:


TARGET_MOUNT=hier steht der Krempel vom NAS...(egal!)

sudo mount $TARGET_MOUNT
sudo service symcon stop
sudo zip -r /mnt/backup/Day_`date +%u`_backup.zip /var/lib/symcon/*
sudo service symcon start

Dabei hängt die Sache ab dem „service symcon stop“, es geht auch nicht mit „#/etc/init.d/symcon stop“.
Wenn ich das Skript von der Shell aufrufe läuft es ohne Probleme durch.

Ich vermute, dass IPS sich nicht beenden lassen „will“ weil das Skript noch läuft, das läuft noch weil nicht beendet wird…etc.
Das ist der Dienststatus nach dem Ausführen des Skripts:

linaro@tinkerboard:~$ sudo service symcon status
● symcon.service - LSB: Kurze Beschreibung
   Loaded: loaded (/etc/init.d/symcon; generated; vendor preset: enabled)
   Active: deactivating (stop) since Thu 2020-02-13 14:03:47 CET; 8s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 443 ExecStart=/etc/init.d/symcon start (code=exited, status=0/SUCCESS)
Cntrl PID: 2755 (symcon)
   CGroup: /system.slice/symcon.service
           ├─ 476 /usr/bin/symcon service
           ├─2711 sh -c cd '/usr/share/symcon/scripts' ; sudo bash /root/backup_zip_day.sh
           ├─2712 sudo bash /root/backup_zip_day.sh
           ├─2716 bash /root/backup_zip_day.sh
           ├─2731 sudo service symcon stop
           ├─2735 systemctl stop symcon.service
           └─control
             ├─2755 /bin/sh /etc/init.d/symcon stop
             └─2779 sleep 1

Ich komme nicht mehr weiter - wenn jemand eine Idee hat…Danke :wink:
Das hilft nicht: IP-Symcon Community Forum

Gruß,
Matthias

Hast du mal ein Logfile parat? Dort sollte ersichtlich werden wo er fest steckt beim Beenden.

paresy

Hallo Paresy,

habe ich sicher, aber welches und woher? :smiley:
Sag mir was Du von wo brauchst und ich lege los!
Ich bin mit Windows absolut fit, mit Linux aber nur solala bis ganz okay. ich komme auf der Shell klar, aber nicht in unendlicher Tiefe.

Aber generell sieht es mir so aus - auch nach dem „sudo service symcon status“, was ich ja gepostet habe, als ob auf die Beendigung de Dienstes gewartet wird.
Der wird aber nicht beendet, weil das Skript bzw. der Befehl noch läuft. Und der läuft noch weil…von Vorne…
Es ist sozusagen eine Schleife - wenn auch nicht direkt.

Gruß,
Matthias

Ein Blick in die Doku und du weißt wo das IPS Logfile liegt :smiley:
Linux — IP-Symcon :: Automatisierungssoftware
Unter ‚Wo finde ich was?‘.
Michael

Dankeschön! Ich war tatsächlich nicht sicher welche Logfile. Es ist ja im Endeffekt etwas das auf der shell läuft. Daher lag es nicht völlig fern, wenn es was aus dem Betriebssystem gewesen wäre…
Mache ich morgen!
Gruß,
Matthias

Vielleicht hilft dir ja mein Skript weiter:


sudo /etc/init.d/symcon stop

rsync -rl --delete --exclude=*session* /var/lib/symcon/ /home/Pfad_zum_Speicherort/

sudo /etc/init.d/symcon start

Vg
Wickie

Dankeschön, ich bezweifle es aber, da die erste Zeile schon nicht abgearbeitet werden kann :frowning:
Ich habe daher mal gerade den Host neu gestartet und dann den Shell-Befehl über IPS abgesetzt und anschließend das Log rauskopiert.
Als Zip " in der Dropbox https://www.dropbox.com/s/8fr4uql01htowa7/logfile1581665593.zip?dl=1
Bei 08:39:29 sollte die (wenige) Info sein.

Gruß;
Matthias

14.02.2020 08:39:29 | 00000 | MESSAGE | ScriptEngine | Warte auf Beendigung aller Skript-Threads…

Das wird das Problem sein. Hast du mal in den PHP Informationen geschaut, ob du Skripte hast die sehr lange laufen?

paresy

Vielleicht mal damit probieren:

sh -c 'trap "" HUP; $Befehl_nach_Wahl_oder_Script_nach_Wahl' &

Quelle: http://www.linux-forum.de/per-telnet-angestossene-kopieraktion-aufrechterhalten-24322.html

Grüße

Na klar - der Befehl ist das was da lange läuft :smiley:
Ansonsten gibts nichts…
Daher meine vorherigen „Erklärung“, dass es quasi eine Schleife ist:

IP führt Skript aus --> Skript versucht IPS zu beenden --> IPS wartet auf beendigung des Skripts --> Skript wartet auf Beendigung von IPS --> IPS wartet auf beendigung des Skripts --> Skript wartet auf Beendigung von IPS --> IPS wartet auf beendigung des Skripts usw…

Wie wäre es mit einer Batch-Datei die du ausführst, das sollte doch funktionieren.

Ich will ja nicht klugscheißern - aber ne sh ist n Skript :wink:

Hallo,

ich sehe in dem Schript keinen Fehler, ich mache es ähnlich ( hier mal mein Script vom Ubuntu ), die Copy auf meine NAS wird von einem anderen Script per RSYNC durchgeführt, daher hier nicht mit drin )

Ich würde das Script unterm Root-User laufen lassen, wenn sudo ohne PW erlaubt ist, kannst du dir sudo auch direkt checken.
Bei mir ist es daher ein root-cronjob

#!/bin/bash
# Erstellt ein Backup der IP-Symcon Daten
# kopiert diese aufs Laufwerk /Data/IPSymcon_Backup
#

# IP-Symcon stoppen
/etc/init.d/symcon stop

# IP-Symcon Verzeichniss zippen
cd /var/lib/symcon/
/bin/tar cvfz /Data/IPSymcon_Backup/IPSBackup_TAG-$(date +%Y%m%d_%H%M).tgz *

# IP-Symcon starten
/etc/init.d/symcon start

exit

Kleine Einschränkung, ich bin mittlerweile dazu übergegangen IPS nicht mehr zu stoppen, wenns Backup läuft, da hat bei mehreren Recovery-Test keine Probleme gemacht.

So wie ich Matthias sein Vorgehen verstehe macht er das direkt im Symcon Script, dass funktioniert aber nicht unbedingt, da dann auf die Beendigung gewartet wird. Da kann man aber mit entsprechendem Aufruf bzw. Parametern der Funktion vermeiden ;).

Ich habe möchte auch gerade rsync vom Pi aus starten und damit den Symcon Ordner auf die Diskstation übertragen.
Dabei fragt die NAS nach dem Passwort. Was zwar in der Shell einzugeben geht, aber nicht in einem batch file, was zyklisch über cron aufgerufen wird. (1mal in der Woche).
Hat jemand dafür eine Lösung ? Oder gibt es einen viel besseren Weg Symcon auf eine NAS zyklisch zu sichern.

Gruß und bleibt gesund

Du kannst auch den Synology-Ordner per NFS auf dem PI mounten und als root dann entweder mit cp kopieren oder den Symcon Ordner als ein tar File ggfls. mit Datum dort ablegen wie schon oben beschrieben. Wenn es unbedingt rsync sein soll dann besser mit ssh und public key ohne Passwort

Tommi

RSYNC ist eine gute Wahl, das nutze ich auch für solche Zwecke, weil der eben sehr schnell arbeitet und nur Ändeurngen überträgt. Damit sicher ich sogar von der NAS in die OnlineCloud

Zu deinem Password-Problem: PublicKey-Verfahren heist die Lösung.

Du erstellt auf dem Pi einen SSH-Key, trägt den Inhalt der rsa.id.pub (!) Datein in die authorized_keys unter dem Benutzer ein, mit dem du dich auf die NAS einloggen willst.

Einfach google, da findet man genug Anleitung zu PublicKey-Verfahren.

Dann logst du dich einmal vom Pi aus per ssh auf die NAS ein und danach wirst du nicht mehr nach dem Password gefragt. Dann kann auch rsync arbeiten.

Ich habe es schlussendlich mittels crontab gemacht. Das gefrickel aus IPS raus ging mir auf die Nerven…
Geht wunderbar ich habe jetzt jeden zweiten Tag eine Sicherung, die dann nach zwei Wochen überschrieben wird und je Woche nochmal eine separate Datei. (nach dem zippen schiebe ich die Datei unter wechselndem Namen aufs NAS)
Gruß und bleibt gesund,
Matthias

Kommt mir bekannt vor. Ich mache die Backups von IPS und allen anderen Linux-VM’s, wo Daten drauf sind, die sicherungswürdig erscheinen, auch per Cronjob.
Erst mal auf eine eigenen Partition und die wird regelmässig dann auf die NAS gesichert, wenn diese erreichbar ist. Ein weiteres Script erledigt dann den Hausmeisterjob und schmeisst alte Sicherhungen nach x Tage/Wochen weg. RSync löscht diese dann automatisch von der NAS.

Da fange ich auch nicht an, in IPS was zu frickeln, was ich in Linux in 5 min erledigt habe.