MrDeluxe
Enthusiast
Thread Starter
- Mitglied seit
- 01.04.2006
- Beiträge
- 1.466
- Laptop
- Thinkpad E480, E14, T14s
- Prozessor
- AMD 3700x @ 4,3 Boost-Overdrive + Thermal Grizzly Aeronaut
- Mainboard
- Gigabyte Aorus Pro X570
- Kühler
- Scythe Fuma 2
- Speicher
- G.Skill - F4-3200C14D-16GFX
- Grafikprozessor
- 5700 XT
- Display
- 1xBenq G2411HD, 1xLG 27GL850-B, 1xBenq G2411HD @ Icy Box Monitor Arm IcyBox 3 – IB-MS405-T
- SSD
- WD Black SN750
- HDD
- Samsung 850Evo, Crucial 120GB @ Linux EOS
- Opt. Laufwerk
- N/A
- Soundkarte
- OnBoard
- Gehäuse
- Fractal Design Define R6 USB-C Blackout
- Netzteil
- be quiet straight power 650W
- Keyboard
- CMSTORM
- Mouse
- MX518
- Betriebssystem
- Win11 + Linux Elementary OS
- Sonstiges
- Mobile Phone - Mi 11 Lite 5G @ lineageOS nightly
- Internet
- ▼1000 ▲500
Guten Tag,
ich denke hier sind einige gescheite Leute, die sich im Thema Backups sehr gut auskennen. Ich möchte demnächst einen Backup Server auf Linux-Basis (Debian 6.0) aufbauen. Welches Tool würdet ihr zum backuppen empfehlen? Ich würde einfach rsync nehmen wollen. Es handelt sich hierbei, um eine heterogene Umgebung.
Folgendes soll im Skript passieren:
--> Platte /dev/sdx über luksOpen mounten inkl. Passwortabfrage
--> Passwort falsch --> Nachricht --> abbrechen
--> Passwort ok --> prüfe ob Clients verfügbar sind (per ping oder nmap?)
--> Client A nicht verfügbar --> Nachricht ausgeben --> nächster Client
--> Client B verfügbar --> nfs mount von Client --> Daten per rsync+ssh rüberschaufeln
--> diese Überprüfung der Clients und anschließendes rsync soll parallel und nicht nacheinander passieren (würde sonst zu lange dauern sicherlich)
--> Image den ganzen Spaß verpacken per gunzip o.Ä.
--> logging-Einträge verfassen
--> wenn alles erfolgreich nochmal Nachricht ausgeben
--> Backupplatte umounten+luksClose
Ich hoffe ihr habt jetzt einen Überblick, wie ich mir das Backup-Skript vorstelle. Da ich sicherlich nich der einzige bin, der sowas auf die Beine stellen will, frag ich einfach mal ob jemand schon ein fertiges Skript dazu hat. Man muss ja nicht dauernd das Rad neu erfinden
Vielen Dank an euch!
Hier mal das wichtigste:
hier fehlt aber noch einiges... ist eigentlich nur das grobe Backupen von einem Client
ich denke hier sind einige gescheite Leute, die sich im Thema Backups sehr gut auskennen. Ich möchte demnächst einen Backup Server auf Linux-Basis (Debian 6.0) aufbauen. Welches Tool würdet ihr zum backuppen empfehlen? Ich würde einfach rsync nehmen wollen. Es handelt sich hierbei, um eine heterogene Umgebung.
Folgendes soll im Skript passieren:
--> Platte /dev/sdx über luksOpen mounten inkl. Passwortabfrage
--> Passwort falsch --> Nachricht --> abbrechen
--> Passwort ok --> prüfe ob Clients verfügbar sind (per ping oder nmap?)
--> Client A nicht verfügbar --> Nachricht ausgeben --> nächster Client
--> Client B verfügbar --> nfs mount von Client --> Daten per rsync+ssh rüberschaufeln
--> diese Überprüfung der Clients und anschließendes rsync soll parallel und nicht nacheinander passieren (würde sonst zu lange dauern sicherlich)
--> Image den ganzen Spaß verpacken per gunzip o.Ä.
--> logging-Einträge verfassen
--> wenn alles erfolgreich nochmal Nachricht ausgeben
--> Backupplatte umounten+luksClose
Ich hoffe ihr habt jetzt einen Überblick, wie ich mir das Backup-Skript vorstelle. Da ich sicherlich nich der einzige bin, der sowas auf die Beine stellen will, frag ich einfach mal ob jemand schon ein fertiges Skript dazu hat. Man muss ja nicht dauernd das Rad neu erfinden
Vielen Dank an euch!
Hier mal das wichtigste:
Code:
#!/bin/bash
# Quelle: http://mein.homelinux.com/wiki/backup-skripte
# SOURCES and TARGET must end with slash
SOURCES="/was/soll/gesichert/werden1?/ /was/soll/gesichert/werden2?/ (...)"
TARGET="/Ziel/der/Backups/(wo_sollen_die_Backups_hin?/"
MOUNTPOINT=""
LOGFILE="/wo_soll_die_Logadatei_hin?"
EXPIREDAYS=0
RSYNC="--delete"
#falls via ssh hier Benutzer, Hostname und Port eintragen
#SSHUSER="user"
#SSHHOST="hostname"
#SSHPORT=22
### do not edit ###
/bin/date > $LOGFILE
MOUNTED=$(/bin/mount | /bin/fgrep "$MOUNTPOINT");
if [ -z "$MOUNTPOINT" ] || [ -n "$MOUNTED" ]; then
if [ -e $TARGET ]; then
LASTBACKUP=$(/bin/ls -d $TARGET[[:digit:]]* 2>> $LOGFILE | /usr/bin/sort -r | /usr/bin/head -1)
fi
TODAY=$(/bin/date +%y%m%d)
if [ $EXPIREDAYS -gt 0 ]; then
EXPIRED=$(/usr/bin/find $TARGET[[:digit:]]* -maxdepth 0 -ctime +$EXPIREDAYS 2>> $LOGFILE)
for EX in $(/bin/echo $EXPIRED)
do
/bin/echo "rm -rf $EX " >> $LOGFILE
/bin/rm -rf $EX\\
done
fi
for SOURCE in $(/bin/echo $SOURCES)
do
if [ "$LASTBACKUP" ]; then
INC="--link-dest=$LASTBACKUP$SOURCE"
fi
if [ "$SSHUSER" ] && [ "$SSHHOST" ] && [ "$SSHPORT" ]; then
SSH="ssh -p $SSHPORT -l $SSHUSER";
SOURCEDIR="$SSHHOST:$SOURCE";
else
SOURCEDIR=$SOURCE;
fi
/bin/mkdir -p $TARGET$TODAY$SOURCE >> $LOGFILE
echo "/usr/bin/rsync -e \"$SSH\" -av $SOURCEDIR $RSYNC $INC $TARGET$TODAY$SOURCE " >> $LOGFILE 2>> $LOGFILE;
/usr/bin/rsync -e "$SSH" -av $SOURCEDIR $RSYNC $INC $TARGET$TODAY$SOURCE >> $LOGFILE 2>> $LOGFILE;
done
else
/bin/echo "$MOUNTPOINT not mounted" >> $LOGFILE
fi
hier fehlt aber noch einiges... ist eigentlich nur das grobe Backupen von einem Client
Zuletzt bearbeitet: