Backup einer Linux-VM unter Windows
(Die Seite wurde neu angelegt: Unter Windows wurde in VirtualBox ein Linux installiert. Aus dieser VM heraus sollen die wichtigen Daten per rsync auf einen externen Backup-Server gesichert werden. De...) |
|||
(3 dazwischenliegende Versionen von einem Benutzer werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
+ | [[Category:Linux]] | ||
Unter Windows wurde in VirtualBox ein Linux installiert. Aus dieser VM heraus sollen die wichtigen Daten per rsync auf einen externen Backup-Server gesichert werden. Der Vorgang soll einfach über eine Verknüpfung auf dem Windows-Desktop gestartet werden. Hierzu wird PLink aus dem PuTTY-Paket verwendet. | Unter Windows wurde in VirtualBox ein Linux installiert. Aus dieser VM heraus sollen die wichtigen Daten per rsync auf einen externen Backup-Server gesichert werden. Der Vorgang soll einfach über eine Verknüpfung auf dem Windows-Desktop gestartet werden. Hierzu wird PLink aus dem PuTTY-Paket verwendet. | ||
Zeile 4: | Zeile 5: | ||
Der Windows-Host bekommt für das Host-only-Netzwerk im Beispiel die IP 192.168.88.101, die VM bekommt die 192.168.88.102. | Der Windows-Host bekommt für das Host-only-Netzwerk im Beispiel die IP 192.168.88.101, die VM bekommt die 192.168.88.102. | ||
− | |||
− | |||
− | |||
==Linux-VM== | ==Linux-VM== | ||
Zeile 14: | Zeile 12: | ||
Der erste ist für den Zugriff vom Windows-Host auf die VM, der 2. für den Zugriff der VM auf den Backupserver. | Der erste ist für den Zugriff vom Windows-Host auf die VM, der 2. für den Zugriff der VM auf den Backupserver. | ||
− | + | Für den Zugriff durch PuTTY mit diesem Key fügen wir ihn an: | |
+ | cat vm_id.pub >> .ssh/authorized_keys | ||
− | + | Der Key kann noch auf den Host eingeschränkt werden: | |
+ | .ssh/authorized_keys | ||
+ | from="192.168.88.101" ssh-rsa AAAA... | ||
+ | Für das Remote-Backup wird der Backup-Key zum Backupserver kopiert | ||
+ | ssh-copy-id -i backup_id.pub backup-user@backup.server.de | ||
+ | Dort wird der Key ebenfalls entsprechend eingeschränkt. | ||
+ | Lokal wird das Backup mit backupninja vorbereitet. Darin werden die Systeminformationen gesammelt und ein MySQL-Backup konfiguriert. Das Backup landet unter /var/backups. | ||
+ | |||
+ | Für das Backup legen wir ein Skript an: | ||
+ | |||
+ | /root/backup.sh | ||
+ | #!/bin/bash | ||
+ | /usr/sbin/backupninja -n | ||
+ | rsync -avz --delete --delete-excluded --exclude-from=rsync-exclude.list --relative \ | ||
+ | -e "ssh -i /root/.ssh/backup_id" /home /etc /var/backups backup-user@backup.server.de:vm-backup/ | ||
+ | echo | ||
+ | echo "Backup beendet." | ||
+ | sleep 5 | ||
+ | |||
+ | Da die VM nicht permanent läüft, wird backupninja angewiesen, es jetzt zu tun. | ||
+ | Rsync überträgt die Daten aus /home, /etc und /var/backups an den Server, außer den in rsync-exclude.list | ||
+ | definierten Ausnahmen. | ||
+ | |||
+ | rsync-exclude.list | ||
+ | */tmp/* | ||
+ | */sess_* | ||
+ | *.tmp | ||
+ | *.bak | ||
+ | *.log | ||
+ | *.log.1 | ||
+ | |||
+ | ==Backupserver== | ||
+ | Der Backupserver hat den Namen '''backup.server.de'''. Auf dem Backupserver gibt es einen Benutzer '''backup-user''', in seinem Homeverzeichnis befindet sich das Verzeichnis '''vm-backup''' in dem die aktuelle Sicherung hinterlegt wird. '''/home''' wird mittels '''rsnapshot''' in ein versioniertes Backup überführt. | ||
+ | |||
+ | Jetzt rufen wir in der Linux-VM das Backup-Skript zum Test auf und kontrollieren gleichzeitig den ankommenden rsync-Prozeß. | ||
+ | ps aux | grep [r]sync | ||
+ | Die Ausgabe wird entsprechend im '''command'''-Parameter zur Einschränkung des Keys verwendet. | ||
+ | |||
+ | /backup-user/.ssh/authorized_keys: | ||
+ | no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding,command="rsync --server -vlogDtprRze.iLsf --delete-excluded . vm-backup/" ssh-rsa AAAA | ||
+ | |||
+ | Danach sollte das Backup erneut in der Linux-VM aufgerufen werden. Nachdem das fehlerfrei funktioniert muß nur noch der Aufruf unter Windows eingerichtet werden. | ||
==Windows-Host== | ==Windows-Host== | ||
+ | |||
In PuTTY konfigurieren wir eine Session "vm-backup" für die VM. | In PuTTY konfigurieren wir eine Session "vm-backup" für die VM. | ||
Session->IP: 192.168.88.102 | Session->IP: 192.168.88.102 |
Aktuelle Version vom 1. Februar 2012, 10:41 Uhr
Unter Windows wurde in VirtualBox ein Linux installiert. Aus dieser VM heraus sollen die wichtigen Daten per rsync auf einen externen Backup-Server gesichert werden. Der Vorgang soll einfach über eine Verknüpfung auf dem Windows-Desktop gestartet werden. Hierzu wird PLink aus dem PuTTY-Paket verwendet.
VirtualBox stellt der VM 2 Netzwerkadapter zur Verfügung, einmal NAT - damit das Linux Kontakt zur Außenwelt hat und ein Host-only Adapter - mit dem vom Host auf die VM zugegriffen wird.
Der Windows-Host bekommt für das Host-only-Netzwerk im Beispiel die IP 192.168.88.101, die VM bekommt die 192.168.88.102.
[Bearbeiten] Linux-VM
In der VM werden 2 passwortlose SSH-Keys erzeugt:
ssh-keygen -b 4096 -t rsa -C root@vm -f vm_id ssh-keygen -b 4096 -t rsa -C backup@vm -f backup_id
Der erste ist für den Zugriff vom Windows-Host auf die VM, der 2. für den Zugriff der VM auf den Backupserver.
Für den Zugriff durch PuTTY mit diesem Key fügen wir ihn an:
cat vm_id.pub >> .ssh/authorized_keys
Der Key kann noch auf den Host eingeschränkt werden: .ssh/authorized_keys
from="192.168.88.101" ssh-rsa AAAA...
Für das Remote-Backup wird der Backup-Key zum Backupserver kopiert
ssh-copy-id -i backup_id.pub backup-user@backup.server.de
Dort wird der Key ebenfalls entsprechend eingeschränkt.
Lokal wird das Backup mit backupninja vorbereitet. Darin werden die Systeminformationen gesammelt und ein MySQL-Backup konfiguriert. Das Backup landet unter /var/backups.
Für das Backup legen wir ein Skript an:
/root/backup.sh
#!/bin/bash /usr/sbin/backupninja -n rsync -avz --delete --delete-excluded --exclude-from=rsync-exclude.list --relative \ -e "ssh -i /root/.ssh/backup_id" /home /etc /var/backups backup-user@backup.server.de:vm-backup/ echo echo "Backup beendet." sleep 5
Da die VM nicht permanent läüft, wird backupninja angewiesen, es jetzt zu tun. Rsync überträgt die Daten aus /home, /etc und /var/backups an den Server, außer den in rsync-exclude.list definierten Ausnahmen.
rsync-exclude.list
*/tmp/* */sess_* *.tmp *.bak *.log *.log.1
[Bearbeiten] Backupserver
Der Backupserver hat den Namen backup.server.de. Auf dem Backupserver gibt es einen Benutzer backup-user, in seinem Homeverzeichnis befindet sich das Verzeichnis vm-backup in dem die aktuelle Sicherung hinterlegt wird. /home wird mittels rsnapshot in ein versioniertes Backup überführt.
Jetzt rufen wir in der Linux-VM das Backup-Skript zum Test auf und kontrollieren gleichzeitig den ankommenden rsync-Prozeß.
ps aux | grep [r]sync
Die Ausgabe wird entsprechend im command-Parameter zur Einschränkung des Keys verwendet.
/backup-user/.ssh/authorized_keys:
no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding,command="rsync --server -vlogDtprRze.iLsf --delete-excluded . vm-backup/" ssh-rsa AAAA
Danach sollte das Backup erneut in der Linux-VM aufgerufen werden. Nachdem das fehlerfrei funktioniert muß nur noch der Aufruf unter Windows eingerichtet werden.
[Bearbeiten] Windows-Host
In PuTTY konfigurieren wir eine Session "vm-backup" für die VM.
Session->IP: 192.168.88.102 Session->Saved Sessions: vm-backup Window->Translation->Charset: UTF-8 Connection->Data->Auto-loginusername: root Session->Save
Jetzt holen wir uns den Key von der VM. (Start->ausführen->cmd)
$PUTTY_PATH\pscp.exe vm-backup:.ssh/vm_id . $PUTTY_PATH\puttygen.exe
Conversations->Import key: vm_id Save private key: vm_id.ppk
Die Warnung bzgl. leerer Passphrase bestätigen.
Jetzt wieder in Putty:
Session: vm-backup -> Load Connection->SSH->Remote command: /root/backup.sh Connection->SSH->Auth->Private key file: vm_id.ppk
Verknüpfung zu PLink auf dem Desktop erzeugen und beim Ziel hinter plink.exe die Session hinzufügen.
Ziel: "...\PuTTY\plink.exe" vm-backup