Content
Dateianzeige für backup-zip (1.5.3)
usr/share/doc/backup-zip/backup-zip.txt#/usr/share/doc/backup-zip/backup-zip.txt
#
# --- Backup-ZIP 1.5.3 for Eis/Fair Server ---
#
# Copyright (c) 2005 Hans-Peter Seiler
# 2015-2024 Marcus Roeckrath
#
# Creation: 15.09.2005 hs
# Last Update: 01.04.2024 mr
#
#------------------------------------------------------------------------------
# Konzept des Programms
#------------------------------------------------------------------------------
Der Fokus bei der Entwicklung von Backup-ZIP lag nicht im Erstellen von Backups (da
existieren mittlerweile extrem viele gute Loesungen), sondern darin eine moeglichst
stressfreie, einfache und sichere Moeglichkeit zu bieten, um Backups wiederherzustellen.
Es ist vielseitig, da alle sinnvollen Techniken unterstuetzt werden und fuer die
Datensicherung kann preisguenstige Hardware benutzt werden.
Moeglichkeiten fuer Backups:
1. Backup/Restore von lokalen Daten auf Medien, die gemountet werden koennen und
beschreibbar sind (z.B. Festplatten, USB Drives, DVD RAM).
2. Backup/Restore von Daten auf Netzwerkfreigaben, bidirektional.
3. Backup/Restore von Daten auf Remote Servern via rsync/ssh.
Techniken:
1. Multivolume-Archive mit beliebig vielen Backup Rotationen in den Formaten
.tar - Tar-Archive ohne Komprimierung
.tar.gz - Tar-Archive mit gzip Komprimierung
.tar.bz2 - Tar-Archive mit bzip2 Komprimierung
.rar - Rar-Archive, optional, Rar ist lizenzpflichtig und muss deshalb manuell
installiert werden, nach /usr/bin/... ansonsten erfolgt eine Fehlermeldung
2. rsync mit beliebig vielen Rotationen
.rsync - inkrementelle Backups
- rsync Parameter fuer jeden Backup Job individuell configurierbar
- verschluesselte remote Backups/Restores via ssh
- Soweit rsync nicht installiert sein sollte, dann kann es wahlweise beim
ersten Ausfuehren von "Backup create" autom. nachinstalliert werden.
ACHTUNG bitte lesen!!!
- Rotationen werden als Softlinks angelegt und verbrauchen so gut wie
keinen Speicherplatz, ideal fuer grosse Datenmengen. (Bei Sicherung auf
Samba Shares existiert dieser Vorteil leider nicht.)
- Rsync-Backups auf Netzwerkfreigaben von Win-Clients koennen problematisch
werden, wegen fehlender Userberechtigungen. Hier sind tar-Archive die
bessere Wahl.
#------------------------------------------------------------------------------
#
# Menue
#
#------------------------------------------------------------------------------
So sieht das Menue aus:
1: View Documentation
2: Edit Configuration
3: Activate ssh Login
4: Backup create
5: Backup restore/delete
0: Exit
#------------------------------------------------------------------------------
# 6: Backup restore/delete
#------------------------------------------------------------------------------
Hiermit koennen Backups extrem leicht und komfortabel restauriert oder geloescht
werden.
Einfach ausprobieren und geniesen.
#------------------------------------------------------------------------------
# 5: Backup create
#------------------------------------------------------------------------------
Hier koennen einzelne oder alle Backups gemaess Konfiguration manuell durchgefuehrt
werden.
Zur Abschaetzung des benoetigten Speicherplatzes wird die Groesse der Quell-
Verzeichnisse und zuletzt die Gesamtgroesse angezeigt.
Bei groessen Backups dauert das einige Zeit, also Geduld bewahren.
ACHTUNG bitte lesen:
Ein Abbruch mit Ctrl-C kann zur Folge haben, dass die Rotationen zerstoert werden
und wichtige Daten verloren gehen. Also bitte immer ohne Unterbrechung durchlaufen
lassen. Sollte es dennoch in den Fingern jucken, dann sind sicherheitshalber die
betroffenen Backups zu loeschen!
#------------------------------------------------------------------------------
# 4: Activate ssh Login
#------------------------------------------------------------------------------
Backups via rsync/ssh funktionieren nur, wenn das Einloggen am Remote Server per
SSH Key, also automatisch erfolgt.
Es ist umstaendlich dies einzurichten, ausser man benutzt diesen Menuepunkt ;-).
Funktionsbeschreibung:
Das automatisches Login via SSH-Pubkey wird jetzt eingerichtet!
1. Der lokale id_rsa.pub Key wird hierbei ausgelesen oder erzeugt,
2. automatisch an den Remote Server uebertragen und
3. dort in der Datei authorized_keys hinzugefuegt.
Anschliessend kann man sich ohne Passwort am Remote Server einloggen.
Ihr koennt das beruhigt mal testen, einfach keine Daten eingeben und mir ENTER
durchtasten, dann laeuft das Programm mit entsprechenden Hinweisen durch und
wird zuletzt wieder beendet.
#------------------------------------------------------------------------------
#
# Konfiguration
#
#------------------------------------------------------------------------------
#----------------------------------------------------------------------------
# Here you can mount Harddisks, USB-Devices or Samba-Shares for your Backups.
#----------------------------------------------------------------------------
Werden Samba-Shares, Festplatten, etc. zur Datensicherung benutzt, dann ist
es moeglich die erforderlichen Daten zum Mounten der Laufwerke einzutragen.
MOUNT_N='1' # nr of mounts
Hier Anzahl der einzubindenend Laufwerke eintragen (0=kein Laufwerk).
BACKUP_MOUNT_1_FS='ext3' # usb_ext3,usb_ext4,usb_vfat,usb_f2fs,smbfs,cifs,ext3,ext4,vfat,f2fs,udf
Hinweis: Hier kann jedes von Eisfair unterstuetzte Filesystem eingetragen werden, aber
die Partitionierung und Formatierung muss zuvor manuell erfolgen.
Fuer USB-Drives entweder usb_ext3 oder usb_vfat eintragen.
Fuer DVD-RAM empfehle ich udf, zwecks Windows Kompatibilitaet.
Fuer Samba/Windows-Freigaben entweder smbfs (Kernel 2.x) oder cifs (Kernel 3.x).
BACKUP_MOUNT_1_OPTIONS='' # mount options f. e. iocharset=utf8; comma separated
BACKUP_MOUNT_1_DRV='/dev/hdb1' # drive to mount
BACKUP_MOUNT_1_POI='/mnt/disk2' # mount point
Das Verzeichnis fuer den Mountpunkt wird automatisch erstellt.
BACKUP_MOUNT_1_USER='' # smb user
BACKUP_MOUNT_1_PASS='' # smb password
Nur fuer Samba Shares erforderlich. Beispiel:
BACKUP_MOUNT_2_FS='cifs'
BACKUP_MOUNT_2_OPTIONS='iocharset=utf8'
BACKUP_MOUNT_2_DRV='//pc1002/eis_backup'
BACKUP_MOUNT_2_POI='/mnt/pc1002'
BACKUP_MOUNT_2_USER='meier'
BACKUP_MOUNT_2_PASS='geheim'
Als sind also entfernter Rechner (z. B. pc1002) und Name der Share
(z. B. eis_backup) anzugeben.
Hierdurch ist es moeglich Sicherungen/Restores von und nach Windows-Freigaben
durchzufuehren.
#----------------------------------------------------------------------------
# Send Log via Mail after Backups
#----------------------------------------------------------------------------
BACKUP_INFO_MAIL='no' # Send Log (yes/no)
Soll nach dem Backup ein Mail mit Statusinformationen versendet werden?
BACKUP_INFO_MAIL_ADDR='root' # Send Email to ...
Mailadresse (auch moeglich z.B. johndow@web.de)
#----------------------------------------------------------------------------
# Backup Jobs
# Don't change TEC after Backup-Job!!!
#----------------------------------------------------------------------------
Hier koennen die automatischen Backups eingerichtet werden.
BACKUP_CRON_JOB_N='2' # how many cron jobs you need? (0=no)
Anzahl der erforderlichen Cron-Jobs eintragen.
BACKUP_CRON_JOB_1='0 1 * * 6' # cron job 1 (m h dm m dw)
BACKUP_CRON_JOB_2='0 1 * * 7' # cron job 2 (m h dm m dw)
Cron Zeiten fuer die einzelnen Jobs festlegen. Ueberschneidungen moeglichst
vermeiden. Soweit alle Backups zur gleichen Zeit laufen koennen, genuegt
ein Eintrag.
BACKUP_PRE_EXEC='' # run command/script before all jobs
Hier kann ein Befehl oder ein Pfad zu einem Script eingetragen werden.
Die Ausfuehrung erfolgt vor allen Backups.
BACKUP_POST_EXEC='' # run command/script after all jobs
Dito, jedoch nach allen Backups.
BACKUP_N='1' # nr of backups
Anzahl der gewuenschten Backups.
BACKUP_1_CRON_JOB='1' # use cron job 1
Welche Cron Tabelle (siehe BACKUP_CRON_JOB_X ) soll fuer dieses Backup
verwendet werden?
BACKUP_1_PRE_EXEC='' # run command/script before this job
Hier kann ein Befehl oder ein Pfad zu einem Script eingetragen werden.
Die Ausfuehrung erfolgt vor diesem Backup.
z.B. bei MYSQL Sicherung: /etc/init.d/mysql stop
BACKUP_1_POST_EXEC='' # run command/script after this job
Hier kann ein Befehl oder ein Pfad zu einem Script eingetragen werden.
Die Ausfuehrung erfolgt nach diesem Backup.
z.B. bei MYSQL Sicherung: /etc/init.d/mysql start
BACKUP_1_TEC='gzip' # gzip|bzip2|none|rar|rsyn
TEC nicht mehr aendern, sobald Backups durchgefuehrt wurden!!!
Backuptechnik auswaehlen:
none= .tar Archive ohne Komprimierung (fuer mp3, mpeg, avi, usw.)
gzip = .tar.gz Archive (fuer gut komprimierbare Daten)
bzip2= .tar.bz2 Archive (dito aber sehr langsam)
rar= .rar Archive (rar ist aus Lizenzgruenden nicht enthalten s.o.)
rsyn= inkrementelle Kopie (wohl die beste Wahl, es bestehen aber gewisse
Einschraenkungen, siehe Hinweise oben)
BACKUP_1_TEC_RSYN='-a --delete' # nur fuer tec=rsyn, Parameter fuer rsync
Gilt nur fuer tec=rsyn, ansonsten wird dieser Parameter ignoriert.
Hier koennen jetzt beliebige rsync Parameter eingegeben werden, um moeglichst flexibel
zu sein.
z.B.
default Einstellung: -a --delete
ACL : -aAX --delete
ssh backups : -a --delete -e ssh
BACKUP_1_TEC_RSYN_SSHP='22' # nur fuer rsync/ssh Backups, SSH Port
Werden rsync/ssh Backups von Remote Servern gewuenscht, dann kann hier der SSH Port
des Remote Servers eingegeben werden.
Beispiel fuer die erforderliche Eintraege eines rsync/ssh Backups:
BACKUP_1_TEC_RSYN='-a --delete -e ssh' # rsync per ssh auf Remote Server
BACKUP_1_TEC_RSYN_SSHP='4711' # ssh Port des Remote Servers
BACKUP_1_SOURCE_DIR='root@iss-systems.no-ip.org:/home' # Benutzer@url:/Verzeichnis
Neuer Menuepunkt und Hacks fuer ssh Backups:
1. Fuer rsync/ssh Backups ist eine automatische Authentifizierung per SSH Key
erforderlich.
Um diese Authentifizierung einfach und schnell einrichten zu koennen, gibt es einen
neuen Menuepunkt:
4. Activate ssh Login
Funktionsbeschreibung:
Das automatisches Login via SSH-Pubkey wird jetzt eingerichtet!
1. Der lokale id_rsa.pub Key wird hierbei ausgelesen oder erzeugt,
2. automatisch an den Remote Server uebertragen und
3. dort in der Datei authorized_keys hinzugefuegt.
Anschliessend kann man sich ohne Passwort am Remote Server einloggen.
2. Der Remote Server hat eine dynamische IP. Hierbei wird nach jedem IP Wechsel die neue IP
in die Datei ~/.ssh/known_hosts eingetragen und man wird aufgefordert dies mit yes/no zu
bestaetigen. Automatischen Backups wuerden hierbei scheitern. Diese Abfrage kann wie folgt
umgangen werden:
joe ~/.ssh/known_host
aendern von
iss-systems.no-ip.org,84.163.204.78 ssh-rsa ...
zu
iss-systems.no-ip.org,84.163.* ssh-rsa ...
Hinweis: Hierbei wird die Sicherheit beeintraechtigt. Benutzung auf eigene Gefahr.
BACKUP_1_TEC_SIZE='700' # fuer tec=gzip|bzip2|none|rar
Gilt nur fuer tec='gzip|bzip2|none|rar', ansonsten wird dieser Parameter ignoiert.
Maximale Groesse der einzelnen Backupteile. Ab diesem Wert wird das Backup
gesplittet.
Hinweis:
TEC=gzip|bzip2
Dieser Wert gilt nur fuer die tar-Archive selbst. Wird in TEC gzip
oder bzip2 eingetragen, dann werden die tar-Archive zusaetzlich komprimiert.
In diesem Fall koennen die Backupteile, je nach Komprimierbarkeit deutlich
kleiner werden. Deshalb ist die in Variable BACKUP_1_CS_SIZE eingetragene
Zahl lediglich ein Annaeherungswert, wenn als TEC gzip oder bzip2 verwendet
wird.
TEC=rar
Nur rar ist in der Lage gesplittete Archive in der genauen Groesse, wie hier
eingetragen zu erstellen.
****************************************************************************
*** Achtung: ***
*** Keinen zu grossen Wert eingeben. Auf der Sicherungsplatte wird stets ***
*** ein Restspeicherplatz in der gleichen Groesse wie dieser Wert ***
*** benoetigt, um die rar, tar-Archive packen und entpacken zu koennen. ***
*** Empfehlung: 1000 MB moeglichst nicht ueberschreiten ***
****************************************************************************
BACKUP_1_ROTATION='3' # nr of rotations (1=no)
Die Backups koennen auch rotiert werden. Dann hier die gewuenschte Anzahl der
Backupversionen eintragen. 3 bedeutet, es werden 3 Backup Versionen angelegt.
Das aktuellste Backup erhaelt stets die Nummer 1 und das aelteste Backup die
hoechste Nummer.
Wird hier eine 1 eingetragen, so werden keine Rotationen durchgefuehrt.
BACKUP_1_SOURCE_DIR='/etc/config.d' # source directory
Quellverzeichnis
BACKUP_1_SOURCE_DIR_EXCL_N='1' # nr of excludes (0=no)
BACKUP_1_SOURCE_DIR_EXCL_1='backup.d' # exclude (z.B. backup.d)
Eingabe von Verzeichnissen und Dateien, die vom Backup auszuschliessen sind.
Beispiele:
TEC=rsyn
Verzeichnisse = profile/
Dateien = *.mp3
TEC=none|gzip|bzip2
Verzeichnisse = /home/*/profile
Dateien = *.mp3
BACKUP_1_TARGET_DIR='/mnt/disk2/c-sich' # target directory
Zielverzeichnis
Das Sicherungsverzeichnis innerhalb des Mountpunktes wird automatisch erstellt.
BACKUP_1_TARGET_ARC='config' # target archiv name
Name des Backup-Archives.
Hinweis um Fehlfunktionen auszuschliessen:
1. Hier unter keinen Umstaenden Zahlen eintragen.
2. Eigenstaendiger Namen fuer jedes Backup erforderlich.
#------------------------------------------------------------------------------
# Festplatte ruhig stellen ...
#------------------------------------------------------------------------------
IDE Festplatten (z.B. hdb) koennen in Standby Modus versetzt werden:
1. cd /etc/init.d
2. joe boot
3. am Ende hinzufuegen ---> hdparm -c 1 -d 1 -S 240 /dev/hdb
4. speichern
-c 1 ---> setting 32-bit I/O Support eingeschaltet
Bei alten Festplatten auf -c 0 setzen!
-d 1 ---> dma Modus 1 DMA-Modus eingeschaltet
Bei alten Festplatten auf -d 0 setzen!
-S 240 -> Standby nach 240 x 5sec (nach 20 Minuten)
Die hdparm -S Parameter:
0: disable
1-240: 240 5s Intervalle (5s bis 20 min Timeout)
241-251: 11 30min Intervalle (30 min bis 5,5h)
252: 21min Timeout
253: Herstellerdefinierter Timeout
255: 21min 15s Timeout
Hinweis: Leider funktioniert dies mit SATA, SCSI Festplatten und RAID nicht.
#------------------------------------------------------------------------------
Bei der Entwicklung sind und waren beteiligt:
Hans-Peter Seiler (Idee, Programmierung, Weiterentwicklung)
Maximilian Pasternak (hat mir zu Beginn mit vielen Programmier-Tipps unendlich
geholfen, herzlichen Dank)
Thomas Bork (Hilfe bei neuer tar- und gzip Version sowie Samba-
Sicherungen, herzlichen Dank)
Probleme und Verbesserungsvorschlaege per Mail an gmx.de>