# MAILPROG Mailer, der verwendet werden soll. Mögliche Optionen sind:
# mpack (In Verbindung mit ssmtp), sendmail, sendEmail (http://j.mp/Xo69II)
# oder eMail (http://j.mp/1LwMBut)
MAILPROG="sendmail"
which -a sendmail
sendmail -s "testbetreff" email@addresse.de < testmailtext.txt
SUBJECT (Betreff)
MAILFILE (Der Text in der eMail)
MAILADRESS (Empfägeradresse)
ARCHIV (Die gepackten Logs als Anhang)
Beispiel mit mpack:
mpack -s "$SUBJECT" -d "$MAILFILE" "/tmp/${ARCHIV}" "$MAILADRESS"
# Mailer, der verwendet werden soll. Mögliche Optionen sind:
# mpack (In Verbindung mit ssmtp), sendmail, sendEmail (http://j.mp/Xo69II),
# mail oder email (http://j.mp/1LwMBut).
Spezialfall: Eigenes Mail-Programm (customMail) siehea auch CUSTOM_MAIL
MAILPROG="mpack" # mpack, sendmail, sendEmail, mail, email oder customMail
# Eigenes Mailprogramm inkl. kompletter Befehlszeile. Die Platzhalter MAILADRESS (Empfänger),
SUBJECT (Betreff), MAILFILE (Text der eMail) und ARCHIV (Logs) werden im Skript durch
die entsprechenden Werte ersetzt. Umleitungszeichen (<>) in ' setzen.
Beispiel: CUSTOM_MAIL=(mymail -s SUBJECT -a ARCHIV MAILADRESS '<' MAILFILE)
CUSTOM_MAIL=()
# = = = Profil 1 = = =
((nr++)) # Fortlaufende Profil-Nummer
title[$nr]="Proxmox-Backup" # Profilname
arg[$nr]="r" # Argument (-p r)
mode[$nr]="Normal" # Modus (Normal, Snapshot oder Multi)
mount[$nr]="/backup-usb" # Eigener Einhängepunkt
ftpsrc[$nr]="" # Quelle ist ein FTP
ftpmnt[$nr]="" # Einhängepunkt für die FTP-Quelle
source[$nr]="/root"
target[$nr]="${mount[$nr]:-$MOUNT}/_Backup/Proxmox_root"
minfree[$nr]="" # In MegaByte (1024 KByte)
skip_full[$nr]="" # 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]="" # Mindestens frei auf dem Ziel (in MB). Wird alle 5 Minuten geprüft
log[$nr]="${target[$nr]}/$(date +%F)_${title[$nr]}.log"
exfrom[$nr]="$(mktemp "${TMPDIR:-/tmp}/tmp.rsync.XXXX")"
rsync_opt[$nr]=""
cat > "${exfrom[$nr]}" <<_EOF_
/4tb/
/backup-usb/
dev/
lost+found/
mnt/
proc/
sys/
tmp/
var/tmp/
_EOF_
[~] # MV_Backup.sh -c /mnt/usbdrive/sbin/test.conf
RSYNC BACKUP => Version: 170221 by MegaV0lt, http://j.mp/1TblNNj
Original: 2011 by JaiBee, http://www.321tux.de/
Angegebene Konfiguration: /mnt/usbdrive/sbin/test.conf
###################### KONFIGURATION zum backup-321tux Backupskript #####################
#
# Alle Anpassungen zum Skript, kann man hier und im Skript am Anfang der Datei nachlesen.
# Wer sich erkenntlich zeigen möchte, kann mir gerne einen kleinen Betrag zukommen lassen:
# => http://paypal.me/SteBlo
# Der Betrag kann frei gewählt werden. Vorschlag: 2 EUR
#
############################### ALLGEMEINE KONFIGURATION ################################
# Optionen für rsync; Verzeichnisse dürfen nicht angegeben werden
RSYNC_OPT=("-savPbh" "--delete" "--numeric-ids" "--stats")
# Optionen für rsync im Modus "Snapshot"; Verzeichnisse dürfen nicht angegeben werden
RSYNC_OPT_SNAPSHOT=("-av") # Parameter für Modus Snapshot
# [optional] Einhängepunkt der externen Festplatte
# Vor der Sicherung wird geprüft, ob die externe Festplatte eingebunden ist
# Geeignet, wenn alle Profile das Sicherungsziel im selben Einhängepunkt haben
# ACHTUNG: Bei verschiedenen Sicherungszielnen den Parameter mount[$nr] in
# der Profilkonfiguration verwenden
#MOUNT="/mnt/usbdisk" # Einhängepunkt des Sicherungsziels (Beispiel)
#MOUNT="$(readlink -m /mnt/usbdisk)" # Falls Einhängepunkt ein Symlink ist
# 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)"
}
# [optional] Ordner in dem die Sicherung gespeichert wird. Vorgabe ist "_DATEIEN"
# Der Ordner wird im Sicherungsziel ($TARGET) angelegt. Nur Name angeben; keine "/"
#FILES_DIR="_DATEIEN"
# [optional] Zusätzlicher Suchpfad für das Skript, um Programme wie "find" oder
# "curlftpfs" zu finden. Beispiel: PATH="/opt/bin:${PATH}" - Fügt "/opt/bin" am Anfang ein.
# Es können mehrere Pfade angegeben werden. Wichtig: Der ":" dient als Trennzeichen!
# Die Variabel ${PATH} muss entweder am Anfang oder am Ende eingefügt werden.
#PATH="/opt/bin:${PATH}" # Am Ende angehängter Pfad: PATH="${PATH}:/opt/bin"
# [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
############################### EMAIL KONFIGURATION #####################################
# Mailer, der verwendet werden soll. Mögliche Optionen sind:
# mpack (In Verbindung mit ssmtp), sendmail, sendEmail (http://j.mp/Xo69II),
# mail oder email (http://j.mp/1LwMBut).
Spezialfall: Eigenes Mail-Programm (customMail) siehea auch CUSTOM_MAIL
MAILPROG="email" # mpack, sendmail, sendEmail, mail, email oder customMail
# Eigenes Mailprogramm inkl. kompletter Befehlszeile. Die Platzhalter MAILADRESS (Empfänger),
SUBJECT (Betreff), MAILFILE (Text der eMail) und ARCHIV (Logs) werden im Skript durch
die entsprechenden Werte ersetzt. Umleitungszeichen (<>) in ' setzen.
Beispiel: CUSTOM_MAIL=(mymail -s SUBJECT -a ARCHIV MAILADRESS '<' MAILFILE)
CUSTOM_MAIL=()
# eMail-Empfänger (My@mail.de)
# Nur ausfüllen, wenn man kein -e ... verwenden will (z.B. für crontab)
# Es wird dann eine eMail versendet. Kann mit -e ... überschrieben werden
MAILADRESS="xxxxx@xx.xx"
# eMail nur bei Fehler versenden. Kann mit -f über die Befehlszeile angewendet werden
# Kommentarzeichen (#) entfernen zum aktivieren
#MAILONLYERRORS="true"
### Einstellungen für den eMail-Bericht ###
# Zeige verwendetes Betriebssysten (/etc/os-release)
SHOWOS="true"
# Zeige die verwendeten Optionen beim Skriptaufruf (-p a -e My@mail.de ...)
SHOWOPTIONS="true"
# Zeige die Belegung des Sicherungsziels (df -Ph)
SHOWUSAGE="true"
# Zeige Inhalt der Sichrungsziele (Oberste Ebene ls -lh und du -h)
SHOWCONTENT="true"
# Zeige Profile mit Fehlern (rsync Fehlercode)
SHOWERRORS="true"
# Max. Größe des gepackten Logarchivs in Byte, das per Mail gesendet wird.
# Bei MAXLOGSIZE=0 wird kein Archiv angehängt. Betrifft nur das Archiv!
#MAXLOGSIZE=$((1024*1024)) # 1 MB (Vorgabe)
MAXLOGSIZE=$((5*1024*1024)) # Beispiel 5 MB
# Ausfüllen, wenn "sendEmail" verwendert wird (Diese Parameter werden von sendEmail benötigt)
MAILSERVER="" # Server (z.B. mail.gmx.net)
MAILPORT="" # Port (z.B. 25 oder 587 für TLS)
MAILUSER="" # z.B. My@mail.de
MAILPASS="" # z.B. v784hcnfd <- eMail-Passwort
MAILSENDER="" # Sendeadresse (z.B. My@mail.de)
#USETLS="-o tls=yes" # TLS für die SMTP-Verbindung verwenden
############################### PRE- UND POST KONFIGURATION #############################
# PRE_ACTION wird vor dem Sichern ausgeführt. Anführungszeichen müssen Maskiert (\")
# werden. Beispiel: PRE_ACTION="echo \"PRE_ACTION startet hier!\""
PRE_ACTION=""
# POST_ACTION wird nach dem Sichern ausgeführt. Anführungszeichen müssen Maskiert (\")
# werden
POST_ACTION=""
############################### KONFIGURATION DER PROFILE ###############################
# Nummer des Profils. (Fortlaufend mit 1 beginnend und wird automatisch gesetzt)
#nr=1 oder ((nr++)) ab dem 2. Profil
# Bezeichnung des Profils; wird u.a. in der Hilfe angezeigt
#title[$nr]="Meine Sicherung"
# Parameter, mit dem das jeweilige Profil gestartet wird (-p arg[$nr])
#arg[$nr]="m"
# [optional] Modus für die Sicherung. Parameter "Snapshot" verwenden um Snapshots zu erstellen
# Z.B. "Snapshot", "snapshot" oder "snap" für den Snapshot-Modus
# Z.B. "Multi", "multi" oder "m" für den experimentellem Multi rsync-Modus
# "", "default" oder "Normal" für den Normal-Modus
#mode[$nr]="" # Modus (Normal, Snapshot oder Multi)
# [optional] Eigener Einhängepunkt
# ACHTUNG: Bei target[$nr] kein $MOUNT angeben. Entweder vollen Pfad verwenden
# oder die Varaible mount[$nr] oder "${mount[$nr]:-$MOUNT}" verwenden
#mount[$nr]="" # Eigener Einhängepunkt
# [optional] Quellverzeichnis auf FTP-Server (curlftpfs wird benötigt)
# WICHTIG: Login-Daten mit angeben (user:password@ftp.server)
# ACHTUNG: Wenn angegeben, dann ist ftpmnt[$nr] der Einhängepunkt für den FTP
#ftpsrc[$nr]="ftp://myusername:mypassword@ftp.mydomain.com" # Quelle ist ein FTP
# [optional] Wenn ftpsrc[$nr] verwendet wird, ist ftpmnt[$nr] der Einhängepunkt
#ftpmnt[$nr]="/mnt/remote_ftp" # Einhängepunkt für die FTP-Quelle
# Quellverzeichnis(se)
# WICHTIG: Pfadangaben, die Leerzeichen enthalten, müssen von \" umschlossen werden!
# Z.B. \"/Verzeichnis mit Leerzeichen/\"
# Wenn ftpsrc[$nr] verwendet wird, kann man ftpmnt[$nr] im Pfad mit angeben.
# source[$nr] muss dazu nach ftpmnt[$nr] konfiguriert sein!
#source[$nr]="${ftpmnt[$nr]}/html/include" # FTP-Quelle
#source[$nr]="/var/log" # Lokale Quelle
# Zielverzeichnis. Mit "${mount[$nr]:-$MOUNT}" wird $MOUNT verwendet, wenn
# ${mount[$nr]} leer ist
#target[$nr]="${mount[$nr]:-$MOUNT}/_Backup/VDR/Data"
# [optional] Wert in MegaByte. Freier Platz, der auf dem Ziel mindestens frei
# sein muss. Bei Unterschreitung wird eine Warnung angezeigt und in das Fehlerlog
# geschrieben. Das Backup wird NICHT angehalten! (Nur im Modus normal und multi)
#minfree[$nr]="100" # In MegaByte (1024 KB) # 1024 = 1 GB
# [optional] Wenn gesetzt, dann wird bei ungenügend freiem Speicher das Profil
# nicht gestartet und ein Logeintrag im Fehlerlog erstellt (Nur im Modus normal/multi)
#skip_full[$nr]="1" # Wenn gesetzt (1, yes, True, ...) wird das Profil übersprungen
# [optional] Wenn gesetzt, wird vor dem Backup mit einem Testlauf (Dry-Run) geprüft,
# ob noch genug Platz auf dem Ziel vorhanden ist (Langsam). Überschreibt minfree[$nr].
# Kann mit skip_full[$nr] verwendet werden (Nur im Modus normal und multi)
#dry_run[$nr]="1" # Wenn gesetzt wird ein Testlauf durchgeführt
# [optional] Wert in MegaByte. Freier Platz, der auf dem Ziel mindestens frei
# sein muss. Bei Unterschreitung wird eine Warnung angezeigt und in das Fehlerlog
# geschrieben. Das Backup wird abgebrochen! Darf nicht mit minfree[$nr] verwendet
# werden (Nur im Modus normal und multi)
#minfree_bg[$nr]="100" # Mindestens frei auf dem Ziel (in MB). Wird alle 5 Minuten geprüft
# [optional] Logdatei, in der die Ausgabe von rsync gespeichert wird
# Nützlich kann "$(date +%F)" sein, um separate Logs zu erhalten
#log[$nr]="${target[$nr]}/$(date +%F)_${title[$nr]}.log"
# Temporäre Datei (Standard: $(mktemp -t "tmp.rsync.XXXX")); muss nicht geändert werden
# "${TMPDIR:-/tmp}" TMPDIR wird im Skript gesetzt, falls Leer, dann /tmp
#exfrom[$nr]="$(mktemp "${TMPDIR:-/tmp}/tmp.rsync.XXXX")"
# [optional] Optionen für rsync, wenn nicht die Optionen aus $RSYNC_OPT (s.o.) verwendet werden sollen
#rsync_opt[$nr]=""
# Dateien und Verzeichnisse, die von der Sicherung ausgeschlossen werden sollen
# Pro Zeile 1 Pfad; Pfadangaben mit Leerzeichen müssen nicht gesondert behandelt werden
# ACHTUNG: Die Pfade sind relativ!
# tmp/ schließt /tmp und /var/tmp aus
# /tmp/ schließt nur /tmp aus
# /tmp/* behält /tmp/ aber schließt den Inhalt aus
# /var/spool/lpd//cf schließt Dateien auf, die mit cf beginnen und
# im Ordner /var/spool/lpd sind
#cat > "${exfrom[$nr]}" <<_EOF_
#_incoming
#lost+found/
#portage/
#tmp/
#video/
#_EOF_
nr=0 # <- Nicht löschen! Wird für die Nummerierung der Profile beötigt!
# = = = Profil 1 = = =
((nr++)) # Fortlaufende Profil-Nummer
title[$nr]="Proxmox-Backup" # Profilname
arg[$nr]="r" # Argument (-p r)
mode[$nr]="Normal" # Modus (Normal, Snapshot oder Multi)
mount[$nr]="/backup-usb" # Eigener Einhängepunkt
ftpsrc[$nr]="" # Quelle ist ein FTP
ftpmnt[$nr]="" # Einhängepunkt für die FTP-Quelle
source[$nr]="/root"
target[$nr]="${mount[$nr]:-$MOUNT}/_Backup/Proxmox_root"
minfree[$nr]="" # In MegaByte (1024 KByte)
skip_full[$nr]="" # 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]="" # Mindestens frei auf dem Ziel (in MB). Wird alle 5 Minuten geprüft
log[$nr]="${target[$nr]}/$(date +%F)_${title[$nr]}.log"
exfrom[$nr]="$(mktemp "${TMPDIR:-/tmp}/tmp.rsync.XXXX")"
rsync_opt[$nr]=""
cat > "${exfrom[$nr]}" <<_EOF_
/4tb/
/backup-usb/
dev/
lost+found/
mnt/
proc/
sys/
tmp/
var/tmp/
_EOF_
# = = = Beispiel für ein Profil, dass einen FTP-Server als Quelle hat = = =
#((nr++)) # Variable nr um eins hochzählen
# title[$nr]="FTP_Daten" # Profilname
# arg[$nr]="f" # Argument (-p f)
# mode[$nr]="" # Modus (Normal, Snapshot oder Multi)
# mount[$nr]="" # Eigener Einhängepunkt
# ftpsrc[$nr]="ftp://myusername:mypassword@ftp.mydomain.com" # Quelle ist ein FTP
# ftpmnt[$nr]="/mnt/remote_ftp" # Einhängepunkt für die FTP-Quelle
# source[$nr]="${ftpmnt[$nr]}/html/includes"
# target[$nr]="${mount[$nr]:-$MOUNT}/_Backup/Mein_FTP/includes"
# minfree[$nr]="" # In MegaByte (1024 KByte)
# skip_full[$nr]="" # 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]="" # Mindestens frei auf dem Ziel (in MB). Wird alle 5 Minuten geprüft
# log[$nr]="${target[$nr]}/$(date +%F)_${title[$nr]}.log"
# exfrom[$nr]="$(mktemp "${TMPDIR:-/tmp}/tmp.rsync.XXXX")"
# rsync_opt[$nr]=""
#cat > "${exfrom[$nr]}" <<_EOF_
#logs/
#.cnf
#_EOF_
# = = = Vorlage für neues Profil = = =
#((nr++)) # Variable nr um eins hochzählen
# title[$nr]="" # Profilname
# arg[$nr]="" # Argument (-p)
# mode[$nr]="" # Modus (Normal, Snapshot oder Multi)
# mount[$nr]="" # Eigener Einhängepunkt
# ftpsrc[$nr]="" # Quelle ist ein FTP
# ftpmnt[$nr]="" # Einhängepunkt für die FTP-Quelle
# source[$nr]=""
# target[$nr]=""
#minfree[$nr]="" # In MegaByte (1024 KByte)
#skip_full[$nr]="" # 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]="" # Mindestens frei auf dem Ziel (in MB). Wird alle 5 Minuten geprüft
# log[$nr]="${target[$nr]}/$(date +%F)_${title[$nr]}.log"
# exfrom[$nr]="$(mktemp "${TMPDIR:-/tmp}/tmp.rsync.XXXX")"
# cat > "${exfrom[$nr]}" <<_EOF_
#
# _EOF_
################################ ENDE DER KONFIGURATION #################################
# Info: Wenn das Skript startet, werden die Werte aus den Arrays ausgelesen und in Variablen gespeichert.
# title[$nr] -> $TITLE | arg[$nr] -> $ARG | mode[$nr] -> $MODE
# source[$nr] -> $SOURCE | mount[$nr] -> $MOUNT | ftpsrc[$nr] -> $FTPSRC
# target[$nr] -> $TARGET | minfree[$nr] -> $MINFREE | dry_run[$nr] -> $DRY_RUN
# log[$nr] -> $LOG | exfrom[$nr] -> $EXFROM | rsync_opt[$nr] -> $RSYNC_OPT
mail) # Sende Mail mit mail (http://j.mp/2kZlJdk)
mail -s "$SUBJECT" -a "$ARCHIV" "$MAILADRESS" < "$MAILFILE"
Wir verwenden Cookies und ähnliche Technologien für folgende Zwecke:
Akzeptieren Sie Cookies und diese Technologien?
Wir verwenden Cookies und ähnliche Technologien für folgende Zwecke:
Akzeptieren Sie Cookies und diese Technologien?