Ultimate Backup Ultimate Backup

PsychoHH

Benutzer
Mitglied seit
03. Jul 2013
Beiträge
2.967
Punkte für Reaktionen
4
Punkte
78
Rich (BBCode):
stop="${dir}/stop_${scriptname}.txt"
Gibt es einen speziellen Grund, warum Dateinamen als Quelle nicht erlaubt sind? (Sie werden über das "share_mount=$(find ... -type d ..." abgefangen.)

Dies führt wiederum dazu, dass ein anderer Exit Code und Fehlermeldung angezeigt werden kann, da dieser mit der "nächsten" Quelle überschrieben werden. Es kann sogar Erfolg vermeldet werden, obwohl mehrere Quellen davor auf Fehler liefen, lediglich die letzte korrekt gesichert wurde.
Das mit dem scriptnamen dürfte die beste Lösung sein, da diese dann ja nur für das jeweilige Script zählt. Muss nur nochmal schauen ob ich außerhalb vom Script die stop.txt auslese ich glaube aber nicht.

Der Grund dafür, dass es nur per Ordner geht ist folgender.
Wir nutzen ja eine eigene Vergleichelogik ob Ordner eingegangen sind oder nicht usw. Du könntest aber z.B. Eine if Else Abfrage schreiben. z.B. if source!=datei then check ob Ordner gemountet usw. Sodass einige Anfragen dann umgangen werden.

Das mit den exits macht teilweise schon Sinn. Manchmal gibt es bei bestimmten Quellen einen Fehler aber bei anderen nicht. Eigentlich sollte es aber sobald auch nur einen Fehler gab keine Erfolgsmeldung geben. Ich werde das aber noch checken. Sollte im nächsten Update aber soweit beides geändert werden.
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.736
Punkte für Reaktionen
1.644
Punkte
314
Und ich darf noch hinzufügen das wir dein Angebot sehr zu schätzen wissen @matt42. Und wer weiß, vielleicht brauchen wir irgendwann wirklich mal deine Hilfe. Auf der anderen Seite ist es für uns auch immer sehr hilfreich, wenn sich Leute wie Du mit unserem Script auseinandersetzen um Fehlern auf die Schliche zu kommen. Du siehst ja selbst, wie Komplex unser System mittlerweile geworden ist und da verliert man hier und da schon mal etwas aus den Augen.

Von daher hilfst du uns ja bereits...

Tommes
 

jugi

Benutzer
Mitglied seit
07. Apr 2011
Beiträge
1.853
Punkte für Reaktionen
0
Punkte
56
Ziel ist mein unRAID Server.
Hab mich einfach durchgeklickt, Login via SSH Key ist nur von DS zu unRAID möglich (und ich will es andersrum auch nicht) - anything I can do?

edit: debug output:
## Aussenbecken-device.txt ##

specs="RSync-kompatibler Server"
ip="192.168.155.11"
mac=""
ssh_user="root"
ssh_port="22"
rsync_port="22"


## sources.txt ##

sources="/volume1/archive
/volume1/photo
/volume1/documents"


## sourcestmp.txt ##

/volume1/archive
/volume1/photo
/volume1/documents


## var.txt ##

mode="ssh"
encode_mode="ssh"
sync="0"
encode_sync="0"
device="Aussenbecken"
encode_device="Aussenbecken"
ip="192.168.155.11"
ssh_user="root"
mac=""
ssh_port="22"
rsync_port="22"
fromorto="2"
encode_fromorto="2"
scriptpath="/volume1/shared/system"
encode_scriptpath="%2Fvolume1%2Fshared%2Fsystem"
ssh_to="192.168.155.11"
scriptname="rsync_ultimate_backup.sh"
maxdirint="0"
encode_maxdirint="0"
maxdir="2"
encode_maxdir="2"
targetdir="ultimatebackup"
encode_targetdir="ultimatebackup"
version="0"
encode_version="0"
max_version="365"
encode_max_version="365"
nottoscript=""
target=""
targetdir="ultimatebackup"
targetpath=""




Gesetzte Variablen:

BASH=/bin/bash
BASHOPTS=cmdhist:complete_fullquote:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=([0]="1")
BASH_ARGV=([0]="./debug.sh")
BASH_CMDS=()
BASH_LINENO=([0]="145" [1]="0")
BASH_SOURCE=([0]="./debug.sh" [1]="/usr/syno/synoman/webman/3rdparty/UltimateBackup/index.cgi")
BASH_VERSINFO=([0]="4" [1]="3" [2]="48" [3]="1" [4]="release" [5]="armle-unknown-linux-gnu")
BASH_VERSION='4.3.48(1)-release'
CONTENT_LENGTH=
CONTENT_TYPE=
DIRSTACK=()
DOCUMENT_ROOT=/usr/syno/synoman
DOCUMENT_URI=/webman/3rdparty/UltimateBackup/index.cgi
ENABLE_X_ACCEL_REDIRECT=yes
EUID=0
GATEWAY_INTERFACE=CGI/1.1
GROUPS=()
HOSTNAME=Speichersee
HOSTTYPE=armle
HTTP_ACCEPT='text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
HTTP_ACCEPT_ENCODING='gzip, deflate, sdch'
HTTP_ACCEPT_LANGUAGE='en-US,en;q=0.8,de-DE;q=0.6,de;q=0.4,af;q=0.2'
HTTP_CONNECTION=keep-alive
HTTP_COOKIE='ys-duPanel_west=o%3Acollapsed%3Db%253A1; ys-duConfigGrid=o%3Acolumns%3Da%253Ao%25253Aid%25253Dn%2525253A0%25255Ewidth%25253Dn%2525253A30%255Eo%25253Aid%25253Dn%2525253A1%25255Ewidth%25253Dn%2525253A30%255Eo%25253Aid%25253Dn%2525253A2%25255Ewidth%25253Dn%2525253A36%255Eo%25253Aid%25253Dn%2525253A3%25255Ewidth%25253Dn%2525253A171%255Eo%25253Aid%25253Dn%2525253A4%25255Ewidth%25253Dn%2525253A132%25255Ehidden%25253Db%2525253A1%255Eo%25253Aid%25253Dn%2525253A5%25255Ewidth%25253Dn%2525253A132%255Eo%25253Aid%25253Dn%2525253A6%25255Ewidth%25253Dn%2525253A151%255Eo%25253Aid%25253Dn%2525253A7%25255Ewidth%25253Dn%2525253A46%25255Ehidden%25253Db%2525253A1%255Eo%25253Aid%25253Dn%2525253A8%25255Ewidth%25253Dn%2525253A46%25255Ehidden%25253Db%2525253A1%255Eo%25253Aid%25253Dn%2525253A9%25255Ewidth%25253Dn%2525253A46%255Eo%25253Aid%25253Dn%2525253A10%25255Ewidth%25253Dn%2525253A46%25255Ehidden%25253Db%2525253A1%255Eo%25253Aid%25253Dn%2525253A11%25255Ewidth%25253Dn%2525253A114%25255Ehidden%25253Db%2525253A1%255Eo%25253Aid%25253Dn%2525253A12%25255Ewidth%25253Dn%2525253A114%255Eo%25253Aid%25253Dn%2525253A13%25255Ewidth%25253Dn%2525253A190%5Esort%3Do%253Afield%253Ds%25253Ahost%255Edirection%253Ds%25253AASC; stay_login=0; id=OFFsV2sjq3lL213B0M7N011290'
HTTP_HOST=192.168.152.11:5000
HTTP_REFERER='http://192.168.152.11:5000/webman/3rdparty/UltimateBackup/index.cgi?page=create-5'
HTTP_UPGRADE_INSECURE_REQUESTS=1
HTTP_USER_AGENT='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36'
IFS=$' \t\n'
INSTANCE=
JOB=apparmor
MACHTYPE=armle-unknown-linux-gnu
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/syno/bin:/usr/syno/sbin
PATH_INFO=
PIPESTATUS=([0]="0")
PPID=4022
PS4='+ '
PWD=/volume1/@appstore/UltimateBackup
QUERY_STRING=page=debug
REMOTE_ADDR=192.168.187.20
REMOTE_PORT=62484
REQUEST_METHOD=GET
REQUEST_SCHEME=http
REQUEST_URI='/webman/3rdparty/UltimateBackup/index.cgi?page=debug'
SCGI=1
SCRIPT_FILENAME=/usr/syno/synoman/webman/3rdparty/UltimateBackup/index.cgi
SCRIPT_NAME=/webman/3rdparty/UltimateBackup/index.cgi
SERVER_ADDR=192.168.152.11
SERVER_NAME=192.168.152.11
SERVER_PORT=5000
SERVER_PROTOCOL=HTTP/1.1
SERVER_SOFTWARE=nginx/1.11.3
SHELL=/bin/ash
SHELLOPTS=braceexpand:hashall:interactive-comments
SHLVL=1
SOCKET=/run/synoscgi.sock
TERM=linux
UID=0
UPSTART_EVENTS='syno.network.ready started'
UPSTART_INSTANCE=
UPSTART_JOB=synoscgi
_='

Gesetzte Variablen:
'
backifs=$' \t\n'
debuginfo=$'Aussenbecken-device.txt\nfoundbackups.txt\nsources.txt\nsourcestmp.txt\nvar.txt'
decode_value=debug
device=Aussenbecken
dir=/volume1/@appstore/UltimateBackup
encode_device=Aussenbecken
encode_fromorto=2
encode_max_version=365
encode_maxdir=2
encode_maxdirint=0
encode_mode=ssh
encode_page=debug
encode_scriptpath=%2Fvolume1%2Fshared%2Fsystem
encode_sync=0
encode_targetdir=ultimatebackup
encode_value=debug
encode_version=0
fromorto=2
ip=192.168.155.11
login=$'\ntoken: nF8iMGqYFIxXI user: admin\n admin: 1'
login_admin=1
login_user=admin
mac=
mainpage=debug
max_version=365
maxdir=2
maxdirint=0
mode=ssh
nottoscript=
page=debug
rsync_port=22
script=debug.sh
scriptname=rsync_ultimate_backup.sh
scriptpath=/volume1/shared/system
site=debug
siteless=
sitemore=
ssh_port=22
ssh_to=192.168.155.11
ssh_user=root
stop=/volume1/@appstore/UltimateBackup/usersettings/stop.txt
sync=0
target=
targetdir=ultimatebackup
targetpath=
usersettings=/volume1/@appstore/UltimateBackup/usersettings
var=/volume1/@appstore/UltimateBackup/usersettings/var.txt
variable=page
version=0
 

Anhänge

  • Bildschirmfoto 2017-05-09 um 20.22.14.jpg
    Bildschirmfoto 2017-05-09 um 20.22.14.jpg
    48,2 KB · Aufrufe: 114

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.736
Punkte für Reaktionen
1.644
Punkte
314
Hey jugi... welcome back!

Aktuell habe ich nicht wirklich eine Lösung parat, da hier PsychoHH federführend ist (der sich sicherlich bald melden wird). Eine Frage habe ich trotzdem...

SSH-Zugriff von der DS auf dein "unRAID" über die Konsole funktioniert?

Tommes
 

BlueGe

Benutzer
Mitglied seit
22. Apr 2017
Beiträge
16
Punkte für Reaktionen
0
Punkte
1
Hallo PsychoHH und Tommes,
mein letzter Beitrag ist zwar schon etwas her, doch ich wollte mich trotzdem für eure Hilfe noch mal bedanken.
für die Erweiterung des Betreffs habe ich mir nun eine Variable noch mit ins Skript geschrieben.
Rich (BBCode):
# E-Mail Adresse
email="test@test.de"
# Betrefferweiterung zur Unterscheidung der Mails
presub="Text vor dem Betreff"

echo "Subject: $presub Sicherungsprotokoll vom $timestamp Uhr" >> "$log"
Dies habe ich dann an den entsprechenden Stellen mit hinzugefügt.

Vielleicht findet ihr Zeit und könnt das mit ins Programm mit einbauen. Vielleicht ist es auch für andere User hilfreich die Mails von Ultimate Backup unterscheiden zu können.

Ich muss sagen, das Skript sieht zur alten Variante nun wesentlich aufgeräumter aus und die deutschen Kommentare sind für einen Leihen wie mich super. Somit bekommen
auch ich Anpassungen hin.
Also weiter so.

Gruß BlueGe
 

matt42

Benutzer
Mitglied seit
13. Jan 2015
Beiträge
44
Punkte für Reaktionen
4
Punkte
8
Danke für die Erläuterung, PsychoHH. Ich schaue mal, was ich für eine Vergleichelogik bauen kann, und wo sie überall zuschlagen muss. Antwort kommt dann (dauert nur ein bisschen :) ).

Ich denke auch nicht, dass die Datei stop.txt irgendwo genutzt wird, denn sie wird am Ende des Skripts gleich wieder gelöscht. Theoretisch bräuchte man sie damit gar nicht, eine Variable dürfte reichen, aber ich kenne die Kommunikation mit dem Frontend in DSM noch nicht.
 

matt42

Benutzer
Mitglied seit
13. Jan 2015
Beiträge
44
Punkte für Reaktionen
4
Punkte
8
Ich verwende im eigenen LAN zusätzlich die RSync Option -W, gerade bei meiner Konstellation sehr hilfreich.

Ich habe, basierend auf folgender Anleitung, dem Kopieren durch Erweiterung des ssh-Befehls um
Rich (BBCode):
"-T -c arcfour -o Compression=no -x"
etwas mehr Beine gemacht. Klappt zwischen zwei Diskstations im LAN ganz gut.
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.736
Punkte für Reaktionen
1.644
Punkte
314
@matt42
Das mit dem Geschwindigkeitsgewinn muss ich mir bei Gelegenheit mal anschauen, das sieht auf dem ersten Blick auf jeden Fall sehr gut aus. Vielleicht bauen wir diesen Befehlsschnipsel als Optionale Auswahlmöglichkeit in Ultimate Backup ein, da hier anscheinend Bedarf besteht.

@BlueGe
Auch das werde ich mir bei Gelegenheit anschauen und ggf. einbauen. Ist auf jedenfall eine gute Idee.

Aber wie gesagt, es kann etwas dauern. Wir verschwenden unsere Zeit grade für eine etwas umfangreichere Erweiterung von Ultimate Backup, was sehr Arbeits- und Zeitaufwendig ist. Aber wir sind guter Dinge...

Tommes
 

Ha34Meiner

Benutzer
Mitglied seit
28. Dez 2012
Beiträge
573
Punkte für Reaktionen
12
Punkte
44
Da ich nun auch auf 6.1.1 upgedatet habe, kann ich ja mein geliebtes "autorun" nicht mehr nutzen. Nun habe ich Euren gute Anwendung Ultimate installiert. Es funktioniert alles gut. Nur noch eine Frage habe ich. Bei dem alten "autorun" konnte ich, nach abgeschlossener Sicherung einfach die ext. USB-LW abstecken. Geht es bei Euch auch?

Und noch eine Frage, werden auch meine MariaDB samt Inhalt gesichert?

Und eine Bitte für eine kleine Änderung in Eurer Software, es wäre schön, wenn man auch Email-Adressen mit.Stadt-Domain nutzen könnte und nicht nur .de .com etc.
Aber ihr habt Euch viel Mühe und Arbeit mit der Software gemacht, vielen Dank dafür.
 
Zuletzt bearbeitet:

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.736
Punkte für Reaktionen
1.644
Punkte
314
Wir haben uns für das automatische mounten, die Scriptausführung sowie dem automatischen unmounten externer Datenträger die 3rd-Party Anwendung "autorun" zu Nutze gemacht. In der Ultimate Backup Hilfe steht beschrieben wie man dabei vorgehen sollte und was zu beachten ist.

Deine MariaDB Datenbanken werden nicht mitgesichert. Du müsstest im Vorfeld also einen Dump in einen von Ultimate Backup erreichbaren "gemeinsamen Ordner" schieben bevor du die Sicherung startest. Wie das mit dem Dump genau geht, kann ich dir aus dem Stegreif nicht genau sagen und im Wiki steht nur eine Anleitung zu MySQL. Inwieweit diese mit MariaDB kompatibel ist kann ich nicht sagen, da ich sowas nicht (mehr) brauche. Hier mal der Link zum Wiki http://www.synology-wiki.de/index.php/Backup_der_MySQL-Datenbank_über_einen_cronjob

Und die Anpassung der Mailadresse an deine gewünschte TLD muss ich erstmal prüfen, sollte aber machbar sein.

Tommes
 

Ha34Meiner

Benutzer
Mitglied seit
28. Dez 2012
Beiträge
573
Punkte für Reaktionen
12
Punkte
44
Danke für Deine schnelle Antwort. autorun, hatte ich es nicht geschrieben ;-)) Genau das meinte ich. Dann werde ich die Hilfe mal zur Rate ziehen.

EDIT: Soll autorun den Datenträger auswerfen : Ja [ $autorun ] steht im Skript. Dann sollte es ja klappen.

Für die MariaDB reicht doch dann ein Export direkt aus der DB heraus, oder? Das scheint mir das einfachste zu sein. Dann müßte ich nur, bei einer Neuinstallation in der MariaDB die import-Funktion benutzen.
 
Zuletzt bearbeitet:

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.736
Punkte für Reaktionen
1.644
Punkte
314
Ja genau. autorun soll den Datenträger nach der Sicherung auswerfen. Erfahrungsgemäß kann das auswerfen aber ein wenig Zeit in Anspruch nehmen, von daher bitte ein wenig Geduld mitbringen.

Einen Dump per Script durchzuführen ist in meinen Augen wesentlich komfortabler, da du das Script ggf. automatisiert über den DSM-Aufgabenplaner ausführen könntest, oder das Script ebenfalls per autorun ausführen, so das erst der Dump erstellt wird und danach das Ultimate Backup Script ausgeführt wird. Aber natürlich geht das auch zu Fuß über z.B. phpMyAdmin.

Tommes
 

AndiHeitzer

Benutzer
Sehr erfahren
Mitglied seit
30. Jun 2015
Beiträge
3.341
Punkte für Reaktionen
633
Punkte
174
Ich mache von mehreren MySQL-Servern täglich ein eigenes Backup mit folgendem Muster:

Rich (BBCode):
##### DB-BACKUP.SH #####
export LOGFILE=/volume1/_WARTUNGS-LOGS_/dump_mysql.log
export DUMPPFAD=/volume2/_WEB-BACKUP_/_MYSQL-DUMPS
export DUMPTIME=$(date +%Y%m%d-%H%M%S)
export DUMPPARAM=' --all-databases '
export DUMPRUN=/bin/mysqldump

mkdir $DUMPPFAD/$DUMPTIME

$DUMPRUN -h[HOSTNAME] -P[PORT] --user=[USER] --password=[PASSWORD] ${DUMPPARAM} > ${DUMPPFAD}/${DUMPTIME}/DBNAME_oder_HOSTNAME.sql

Sowas wird dann einfach vor das UltimateBackup gebaut und gut ist das :eek:
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.736
Punkte für Reaktionen
1.644
Punkte
314
Perfekt! Danke für deinen Codeschnipsel Andi, den muss ich mir gleich mal wegspeichern!

Tommes
 

AndiHeitzer

Benutzer
Sehr erfahren
Mitglied seit
30. Jun 2015
Beiträge
3.341
Punkte für Reaktionen
633
Punkte
174
Keine Ursache, als DBA für MSSQL/MySQL kann man sowas schonmal schreiben :eek:
 

Ha34Meiner

Benutzer
Mitglied seit
28. Dez 2012
Beiträge
573
Punkte für Reaktionen
12
Punkte
44
Dank Andi für den Code, aber ich sehe, das ist dann doch zu schwer. Ich müßte erst einmal wissen, was die einzelnen Zeilen bedeuten. Das wäre ein Thread für sich/mich *LACH*
 

AndiHeitzer

Benutzer
Sehr erfahren
Mitglied seit
30. Jun 2015
Beiträge
3.341
Punkte für Reaktionen
633
Punkte
174
Das Ganze ist ein SHELL-Script, dass Du in irgendeinen Gemeinsamen Ordner ablegst.
Die Zeilen mit 'export' setzen die Variablen.
Dann wird ein Ziel-Verzeichnis erstellt, dass dem Zeitstempel entspricht.
Danach kommt der DUMP für den entsprechenden MySQL-Server.

Ich kann das gerne weiter ausführn, aber vermutlich nicht hier, weil es hier ein anderes Hauptthema hat. Da werden Tommes und Psycho sicherlich zurecht 'meckern' ;-)
Zudem gibt es grade für MySQL "Lastwagen-Weise" Anleitungen und Beispiele im Internet zu finden.
 

PsychoHH

Benutzer
Mitglied seit
03. Jul 2013
Beiträge
2.967
Punkte für Reaktionen
4
Punkte
78
Warum fragt keiner ob wir sowas einbauen? :eek:
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.736
Punkte für Reaktionen
1.644
Punkte
314
Pssssst..... Petze!
 

AndiHeitzer

Benutzer
Sehr erfahren
Mitglied seit
30. Jun 2015
Beiträge
3.341
Punkte für Reaktionen
633
Punkte
174
:eek:

Wenn es um den MySQL-Dump geht, dann könnte ich schon etwas beisteuern :cool:
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat