wordpress themes | total verfriemelt

Total Verfriemelt

am Rande des Wahnsinns

Posts Tagged ‘ Cronjob ’

Vor einiger Zeit habe ich hier das ghettoVCB Backup Script für den VMWare ESXi 3.x vorgestellt. Eine Version für den ESXi 4.0 gibt es dort ebenfalls. Da der ESXi bei einem Reboot sein Filesystem neu aufbaut sind alle Änderungen, die man z.B. für SSH Keybased Authentication oder Cronjobs vornimmt wieder verschwunden. Um die Einstellungen trotzdem persistent zu machen sind weitere Schritte notwendig.

Vorbereitungen auf dem ESXi.

Da auf dem ESXi von Haus aus kein SSH unterstützt wird, sollte dies erst einmal erledigt werden. Eine gute Anleitung dazu findet ihr hier.

Remotebackup von einem Linuxserver aus

SSH Keybased Auth – ESXi Server

Wir erstellen also das benötigte Verzeichnis /.ssh im Root  und darin das authorized_keys File.


mkdir /.ssh
touch /.ssh/authorized_keys
chmod 600 /.ssh
chmod 600 /.ssh/authorized_keys

SSH Keybased Auth – Linux Client

Auf dem Linux Client erstellen wir per ssh-keygen unseren Public Key, wobei wir passphrase leer lassen.


[root@gollum ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

Den Inhalt der Datei /root/.ssh/id_rsa.pub kopieren wir in die Datei /.ssh/authorized_keys.
Der Login sollte jetzt ohne eine Eingabe vom Passwort funktionieren.

Damit das Ganze auch nach einem Reboot noch funktioniert, muss der Ordner ./ssh in die /bootbank/oem.tgz verfrachtet werden.

tar c - /.ssh | gzip > /bootbank/oem.tgz

Jetzt erstellen wir ein Script, welches auf dem 2. Linux Host via Cronjob ausgeführt werden soll und das Backup anstößt. (Bitte darauf achten, dass die ghettoVCB.sh und die backuplist.txt auf einem Datastore liegen, das diese sonst ebenfalls nach einem Reboot flöten gehen.)

Der Inhalt sollte in etwa wie folgt aussehen:

#!/bin/bash
ssh fb-vm-esxi01 << EOL #Verbindung zum ESXi aufbauen
/vmfs/volumes/datastore1/ghettoVCBi4.sh /vmfs/volumes/datastore1/backuplist.txt #Befehl der auf dem ESXi ausgeführt wird
exit #Logout vom ESXi
EOL

Zu guter Letzt können wir das Script auf dem Linuxserver in einen Cronjob packen.

Cronjobs auf dem ESXi direkt

Die Crontab des ESXi liegt unter /var/spool/cron/crontab/root, ist ebenfalls nicht persistent und auf 512 Zeichen limitiert. Wer mehr in die Crontab schreiben möchte, muss die oben erwähnte Vorgehensweise nutzen.

Wenn nur das Backup gestartet werden soll, reicht die ESXi Crontab aber noch aus.

Dazu öffnen wir die /etc/rc.local und fügen folgende Zeile hinzu:

echo "0 21 * * 5 /vmfs/volumes/datastore1/ghettoVCB4i.sh" >> /var/spool/cron/crontabs/root

Somit wird bei jedem Reboot der Eintrag in der Crontab wiederhergestellt.

Ein großes Dankeschön an die Kommentatoren, die mich auf die Rebootgeschichte aufmerksam gemacht haben.