Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Support RSYNC BACKUP - MV_Backup.sh (Linux - Bash)

    Nobody is reading this thread right now.
Hi,

kurzes Feedback.
Die Option "Files_Dir" sollte im Changelog angemerkt sein. ich wunderte mich schon, warum es so lange dauert. Das Script Version 160316 hatte die Option per Default.
Daher wurden die Dateien falsch in _DATEIEN abgelegt und angefangen neu zu syncen. Ebenfalls speichert das Script nun geloeschte Dateien auch ohne diesen Ordner direkt im Datumsordner. Daher wurden die geloeschten Dateien auch erneut gesynct. :)
Musste ich daher abbrechen und anpassen.

Zum Freespace_BG. Läuft :) TOP.
Beim Erreichen der Grenze wird wie folgt abgebrochen.
Code:
Logfile:
Auf dem Ziel (/mnt/netbackup/server01) sind nur 15100136 MegaByte frei! (MINFREE_BG=15101061)


=> Das Backup (backup_nightly) wird abgebrochen!
rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(632) [sender=3.1.1]
rsync: [sender] write error: Broken pipe (32)
/backup.sh: line 601: kill: (1142649) - No such process

Terminal:
Profil "backup_nightly" wurde mit Fehler (20) abgeschlossen
Weitere Informationen sowie Fehlermeldungen sind in der Datei:
"/mnt/netbackup/server01/2016-08-20_backup_nightly.log" gespeichert.

Fehlermeldungen von rsync wurden in der Datei:
"/mnt/netbackup/server01/2016-08-20_backup_nightly.error.log" gespeichert.


==> Sicherungs-Bericht wurde mit "email" an my@email.de versendet.
    Es wurde(n) 1 Logdatei(en) angelegt.
Führe POST_ACTION-Befehl(e) aus...

In einem Fall wurde im Terminal beim Abbruch per Strg-C weder der Hintergrundprozess beendet, noch die Post_Action durchgeführt. Oder ich war nicht geduldig genug. Hatte vergessen wie lange es dauert.

Vielen Dank und beste Grüße.
 
Zuletzt bearbeitet von einem Moderator:
Das mit den FILES_DIR hatte ich gemacht, um in allen Modi (normal, multi und snapshot) die gleichen Parameter bei rsync verwenden zu können. Wenn man die Quelle mit oder ohne abschließenden "/" verwendet, verhält sich rsync unterschiedlich. Einmal wird der Quellordner im Ziel erstellt und das anderen mal nicht. Sorry, dass das zu Problemen geführt hat.

Freut mich, dass das läuft. Habe noch ein wenig weiter gemacht und die neuen Modi auch im Multi-rsync Modus eingebaut.

Bei STRG-C sollte die Hintergrundüberwachung beendet werden. Vielleicht ist das in Deiner Version noch nicht drin?
Siehe f_exit ab Zeile 116:
Code:
...
  [[ -n "$MFS_PID" ]] && kill $MFS_PID  # Hintergrundüberwachung beenden
...
Was ist mit dem Prüfintervall von 5 Minuten? Ist das ausreichend?

Wenn das Skript mit STRG-C abgebrochen wird, dann ist an der stelle Schluss. POST_ACTION oder eMailversand werden dann nicht mehr gemacht. Das müsste ich dann alles zusätzlich in die f_exit mit einbauen. Ich kann aber bei Abbruch eine entsprechende Meldung ausgeben.

Hier mal die Skriptversion 160820 von gestern

 
danke. Habe es jetzt aktualisiert.
Das Prüfintervall habe ich bei mir auf 60 (1Minute) gestellt. Ich denke aber, dass dies sehr individuell ist. 5 Minuten ist sicherlich für den Normalgebrauch ok.
Je öfter das Script prüft, umso niedriger kann die Grenze sein.

STRG-C...ahh, verstehe. Dann ist ja alles, wie es sein soll. Ich finde STRG-C ist auch ein gewünschter Totalabbruch, daher auch richtig so. Mich hatte die noch laufende Hintergrundüberwachung gewundert.

Tausend Dank.
 
Zuletzt bearbeitet:
Ja. Ich habe aber trotzdem Hinweise in die f_exit eingebaut:
Code:
  [[ -n "$MFS_PID" ]] && { echo '-> Beende Hintergrundüberwachung...' ; kill $MFS_PID ;}  # Hintergrundüberwachung beenden
  [[ -n "$POST_ACTION" ]] && echo "Achtung: POST_ACTION (Profil ${TITLE}) wird nicht ausgeführt!"
  [[ -n "$MAILADRESS" ]] && echo 'Achtung: Es erfolgt kein eMail-Versand!'
Ich packe das nun alles auch in das Archiv (Seite 1)
 
Hallo und schönen Abend zusammen!
Ich bin völlig neu hier und auch in Sachen rsync-Backup ein ziemlicher Noob ;)
Zu Beginn habe ich natürlich gleich ein paar Fragen, die sich für mich leider trotz Kommentare im Script nicht wirklich beantworten lassen:

(1) Kann ich in einem Problem mehrer Quellverzeichnisse angeben? Ich habe versucht meine gewünchten Ordner einfach nacheinander zu schreiben - aber leider ohne Erfolg

(2) Wie kann ich dir Ordnerstruktur meiner Quellverzeichnisse im Target ident erscheinen lassen?
Ich möchte z.B.: den Ordner /home sichern, dann bekomme ich am Target aber "nur" den Inhalt des home Ordners angezeigt, der Ordner an sich ist nich da?

(3) Ich würde einfach nur gernen meinen Pi 1 x pro Woche auf mein NAS sichern -> dieses sichert dann wiederum auf eine externe HDD
Wenn ich nur wüsste welche Ordner ich zwingend sichern soll und welche ich ausschließen muss. Sonst könnte ich ja einfach "/" sichern und entsprechende Ordner ausschließen, oder?

Vielen, lieben Dank für eure Hilfe!
montharon
 
Hallo,

zu 1: Kann ich nur sagen, dass das im Manuellen Modus gegen müsste. (-m Ornder1 "Ordner 2" Zielordner)

Zu 2: Im Ziel erscheinen die Dateien im Unterordner _Dateien. Wenn Du als Ziel z. B. .../home angibst, dann erscheinen die Dateien dort. Das ist so, da Log-Dateien und Gelöschte Dateien auch im Zielordner angelegt werden und von der Sicherung getrennt sein sollten

zu 3: Ich sichere z. B. / bei mir und schließe die Ordner aus, die nicht zu sichern gehen oder keinen Sinn machen:
Code:
 title[$nr]="HP-T5730_Root"
   arg[$nr]="r"
  mode[$nr]=""             # Modus (Normal oder Snapshot)
source[$nr]="/"
mount[$nr]=""             # Eigener Einhängepunkt
ftpsrc[$nr]=""             # Quelle ist ein FTP
target[$nr]="${mount[$nr]:-$MOUNT}/_Backup/HP-T5730/Root"
minfree[$nr]=""            # In MegaByte (1024 Byte)
skip_full[$nr]="1"         # Wenn gesetzt (1, yes, True, ...) wird das Profil übersprungen
dry_run[$nr]=""            # Wenn gesetzt wird ein Testlauf durchgeführt (Nur im Modus normal)
minfree_bg[$nr]="1024"     # In MegaByte (1024 Byte)
   log[$nr]="${target[$nr]}/$(date +%F)_${title[$nr]}.log"
exfrom[$nr]="$(mktemp "${TMPDIR:-/tmp}/tmp.rsync.XXXX")"
rsync_opt[$nr]=""
cat > "${exfrom[$nr]}" <<_EOF_
dev/
lost+found/
mnt/
proc/
/run/
sys/
tmp/
var/log/
var/run/
var/tmp/
_EOF_
Und so sieht das auf der Platte aus:
Code:
root auf HP-T5730 am 27.08.2016 12:22
[~] # ls -l /mnt/usbdisk/_Backup/HP-T5730/Root/
insgesamt 5956
-rw-r--r--  1 root root 1165916 Jul 16 08:15 2016-07-16_HP-T5730_Root.log
-rw-r--r--  1 root root   19586 Jul 23 08:15 2016-07-23_HP-T5730_Root.log
-rw-r--r--  1 root root  586257 Jul 30 08:15 2016-07-30_HP-T5730_Root.log
-rw-r--r--  1 root root 1287331 Aug  6 08:16 2016-08-06_HP-T5730_Root.log
-rw-r--r--  1 root root  126574 Aug 13 08:15 2016-08-13_HP-T5730_Root.log
-rw-r--r--  1 root root    8836 Aug 14 12:55 2016-08-14_HP-T5730_Root.dry.log
-rw-r--r--  1 root root   67538 Aug 14 12:55 2016-08-14_HP-T5730_Root.log
-rw-r--r--  1 root root    2693 Aug 20 08:15 2016-08-20_HP-T5730_Root.dry.log
-rw-r--r--  1 root root 2711902 Aug 20 08:15 2016-08-20_HP-T5730_Root.log
-rw-r--r--  1 root root   93360 Aug 27 08:15 2016-08-27_HP-T5730_Root.log
drwxr-xr-x 17 root root    4096 Mai  8  2015 _DATEIEN
drwxr-xr-x 11 root root    4096 Aug 27 08:15 Geloeschte Dateien
in _DATEIEN sind dann alle Daten drin
 
Zuletzt bearbeitet:
Aktuell noch die Zeitspanne für den Hintergrundprozess konfigurierbar gemacht:
Code:
# [optional] Zeitabstand in Sekunden, in der der Hintergrundprozess  (siehe minfree_bg[])
# den freien Speicherplatz auf dem Ziel überprüft. Vorgabe ist 300 Sekunden (5 Minuten)
MFS_TIMEOUT="300"  # Zeit in Sekunden
 
(1) Kann ich in einem Problem mehrer Quellverzeichnisse angeben? Ich habe versucht meine gewünchten Ordner einfach nacheinander zu schreiben - aber leider ohne Erfolg
Ich habe jetzt eine aktualisierte Version im GIT ( ), mit der es funktionieren müsste.

Test hier:
Code:
root auf HP-T5730 am 16.10.2016 14:26
[/mnt/usbdrive/tmp/Backup-Test] # MV_Backup.sh -m /home /root /mnt/usbdrive/tmp/Backup-Test/manuell
  RSYNC BACKUP => Version: 161016 by MegaV0lt, http://j.mp/1TblNNj
  Original: 2011 by JaiBee, http://www.321tux.de/
  Verwendete Konfiguration:     /mnt/SSDSA2CT040G3/sbin/MV_Backup.conf


  Konfiguration von:    Benutzerdefinierte Sicherung
  Sicherungsmodus:      Benutzerdefiniert
  Quellverzeichnis(se): /home /root
  Zielverzeichnis:      /mnt/usbdrive/tmp/Backup-Test/manuell
  Log-Datei:            /mnt/usbdrive/tmp/Backup-Test/manuell/Benutzerdefinierte Sicherung_log.txt

  Profil "Benutzerdefinierte Sicherung" wird in 5 Sekunden gestartet
  Zum Abbrechen [Strg] + [C] drücken
  Zum Pausieren [Strg] + [Z] drücken (Fortsetzen mit \"fg\")

Sicherung startet (Profil: "Benutzerdefinierte Sicherung")
-> Starte Backup (rsync)...


Profil "Benutzerdefinierte Sicherung" wurde abgeschlossen
Weitere Informationen sowie Fehlermeldungen sind in der Datei:
"/mnt/usbdrive/tmp/Backup-Test/manuell/Benutzerdefinierte Sicherung_log.txt" gespeichert.

Sicherung(en) abgeschlossen.
Alle angegebene Verzeichnisse müssen existieren!
 
Hi,

Bin gerade auf diesen Thread gestoßen weil ich noch ein Backupprogramm für mein "Mint18-Mate" suche. So wie ich das verstanden habe ist für das manuelle Backup nur "-m" erforderlich.

Code:
sudo ./MV_Backup.sh -m /home/user /media/user/Backup
... hab ich mal getestet.

Aber da erscheint dann
Code:
 FEHLER!  Keine Konfigurationsdatei gefunden!

Hab ich da was falsch verstanden ?
 
Es fehlt die *.conf! Kopiere die mitgelieferte MV_Backup.conf.dist einfach nach MV_Backup.conf in das gleiche Verzeichniss

EDIT: Vielleicht geht es auch mit einer leeren Datei: echo "" > MV_Backup.conf

EDIT2: Ich schau mal, ob ich das Skript so ändern kann, dass bei -m keine Konfig gesucht wird...
 
Zuletzt bearbeitet:
Version mit Erkennung von -m ist zum testen bereit. Es wird nicht versucht eine Konfiguration zu laden, wenn ein manuelles Backup mit -m ... gemacht wird.
Zu finden im
 
Zuletzt bearbeitet:
Irgendwo ist der Wurm bei mir.

edit:
Code:
  RSYNC BACKUP => Version: 161102 by MegaV0lt, http://j.mp/1TblNNj
  Original: 2011 by JaiBee, http://www.321tux.de/
  Manuelle Sicherung! Keine Konfigurationsdatei verwendet. (-m)   


  Konfiguration von:    Benutzerdefinierte Sicherung             
  Sicherungsmodus:   Benutzerdefiniert
  Quellverzeichnis(se):   /home/user
  Zielverzeichnis:   /media/backup
  Log-Datei:       /media/backup/Benutzerdefinierte Sicherung_log.txt

  Profil "Benutzerdefinierte Sicherung" wird in 5 Sekunden gestartet   
  Zum Abbrechen [Strg] + [C] drücken
  Zum Pausieren [Strg] + [Z] drücken (Fortsetzen mit \"fg\")

-> Starte Sicherung (rsync)...


Profil "Benutzerdefinierte Sicherung" wurde abgeschlossen
Weitere Informationen sowie Fehlermeldungen sind in der Datei:
"/media/backup/Benutzerdefinierte Sicherung_log.txt" gespeichert.

Code:
2016-11-02 15:06 - MV_Backup.sh [#161102] - Start:
rsync  --log-file=/media/backup/Benutzerdefinierte Sicherung_log.txt --exclude-from= --backup-dir=/media/backup/Geloeschte Dateien/2016-11-02 /home/user /media/backup/
2016/11/02 15:06:45 [4047] building file list
2016/11/02 15:06:45 [4047] skipping directory user
2016/11/02 15:06:45 [4047] sent 21 bytes  received 17 bytes  total size 0
 
Zuletzt bearbeitet:
Ups... Ich sehe schon. Ohne Konfig fehlen auch die Parameter für rsync...
Also ist eine *.conf nötig!
Minimalaussatattung für eine manuelle Sicherung:
Code:
# Optionen für rsync; Verzeichnisse dürfen nicht angegeben werden
RSYNC_OPT=("-savPbh" "--delete" "--numeric-ids" "--stats")

# Ordner, in den gelöschte Dateien kopiert werden (--backup-dir=)
# Die Variable $TARGET, in der das Zielverzeichnis gespeichert ist, ist hierbei nützlich
f_bak_dir() {                        # Letzter Ordner Format: JJJJ-MM-TT
  BAK_DIR="${TARGET}/Geloeschte Dateien/$(date +%F)"
}
Die Datei darf im Skriptverzeichnis im eigenen ~ oder /etc liegen und wird dort automatisch gefunden. Oder mit -c ... angeben
 
Du musst zurück zur Version 161027 und eine *.conf verwenden. Du kannst z. B. die mitgelieferte '.conf.dist umbenennen oder einen Minimalversion wie weiter oben beschrieben erstellen.

Aktelle GIT-Version ist wieder die 161027
 
Hallo,
ich würde gerne dein Backup-Script auf meinem Proxmox-Server verwenden. Für den Email-Versand via Relay ist der lokale postfix schon fertig konfiguriert.
Wie kann ich das Script dazu bringen einfach den Postfix zu verwenden?
Außerdem ist mir noch nicht ganz klar was jetzt genau der Unterschied zwischen dem normalen Modus und dem Snapshot-Modus ist.
Ist es vielleicht so:
Normal: Quell- und Zielverzeichnis werden syncronisiert (one-way)
Snapshot: Bei jedem Aufruf des Backups wird das Quellverzeichnis in einen neuen Ordner (mit Datum) syncronisiert.
Werden dabei hardlinks verwendet?
 
Zuletzt bearbeitet:
Zurück
Oben