• Windows-Version:

Auf der lokalen Seite müssen folgende Programme vorhanden sein:

– vacuumdb (aus der PostgreSQL-Installation)

– pg_dumpall (aus der PostgreSQL-Installation)

– zip (einfaches Archiviertool)

Python-Installation ab Version 2.5

Zusätzlich muss die Umgebungsvariable „PATH“ entsprechend gesetzt sein.

Systemsteuerung -> System -> Erweitert -> Umgebungsvariablen -> Path editieren und nach Eingabe eines Semikolons gewünschten Ordner hinzufügen.

Alternativ können die oben genannten Dateien (bis auf Python) auch einfach in den Ordner ‚C:\Windows\system32\‘ kopiert werden.

Wem das zu kompliziert ist, kann auch PostgreSQL installieren.

Der Quelltext muss noch an die Bedürfnisse des Benutzers angepasst werden (ziel_verzeichnis, REMOTEHOST, USER) und zum Schluss als Pythondatei  (remote_sicherung.py) gespeichert werden.

Mit dem folgenden Eingabe in der Kommandozeile wird das Skript gestartet.

1
python remote_sicherung.py

Hier ist der Code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/python
# remote_sicherung.py
# Remote-Sicherung fuer eine Postgres DB
# Johannes Sommer, Januar 2007
 
import os
import time
 
# Lokales Ziel definieren (Verzeichnis anpassen!)
ziel_verzeichnis = 'C:\\Sicherung\\'
 
# Datum des heutigen Tages ist der Name des Dumps / Archivs (siehe unten)
jetzt = time.strftime('%Y%m%d')
 
# Backup
dump = ziel_verzeichnis + jetzt + '.backup'
 
# DB VACUUM
vacuum = 'vacuumdb -h REMOTEHOST -U USER --all'
if os.system(vacuum) == 0:
    print 'VACUUM erfolgreich'
else:
    print 'VACUUM fehlgeschlagen.'
 
# Remote-Datenbank-Dump mit pg_dumpall (Host und User anpassen!)
dbsichern = 'pg_dumpall -h REMOTEHOST -U USER > %s' % (dump)
 
# DB-Dump ausfuehren
if os.system(dbsichern) == 0:
    print 'Datenbank-Dump erfolgreich nach', dump
else:
    print 'Datenbank-Dump fehlgeschlagen.'
 
# Zusammenfuegen
archiv = ziel_verzeichnis + jetzt + '.zip'
 
# zip-Befehl
zippen = 'zip -qr %s %s' % (archiv, dump)
 
# Sicherung starten;
if os.system(zippen) == 0:
    # Dump loeschen
    if os.system('del %s' % (dump)) == 0:
        print 'Loesche Datenbank-Dump'
    else:
        print 'Loeschen des Datenbank-Dumps fehlgeschlagen'
    print 'Sicherung erfolgreich nach', archiv
else:
    print 'Sicherung fehlgeschlagen.'
  • Linux-Version:

Auf der lokalen Seite müssen folgende Programme vorhanden sein:

– vacuumdb (aus der PostgreSQL-Installation)

– pg_dumpall (aus der PostgreSQL-Installation)

– tar (sollte in jeder Linuxdistribution dabei sein)

Python-Installation ab Version 2.5

Zusätzlich muss die Umgebungsvariable „PATH“ entsprechend gesetzt sein. Im nachfolgenden Beispiel muss das Verzeichnis angepasst werden (hier liegen die Dateien ‚vacuumdb‘ und ‚pg_dumpall‘ in ‚/home/USER/bin‘).

export PATH=/home/USER/bin:$PATH

Wem das zu kompliziert ist, kann wie unter Windows auch PostgreSQL installieren.

Der Quelltext muss noch an die Bedürfnisse des Benutzers angepasst werden (ziel_verzeichnis, REMOTEHOST, USER) und zum Schluss als Pythondatei  (remote_sicherung.py) gespeichert werden.

Mit dem folgenden Eingabe in der Kommandozeile wird das Skript gestartet.

1
python remote_sicherung.py

Hier ist der Code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/python
# remote_sicherung.py
# Remote-Sicherung fuer eine Postgres DB
# Johannes Sommer, Januar 2007
 
import os
import time
# Lokales Ziel definieren (Verzeichnis anpassen!)
ziel_verzeichnis = '/home/USER/Sicherung/'
 
# Datum des heutigen Tages ist der Name des Dumps / Archivs (siehe unten)
jetzt = time.strftime('%Y%m%d')
 
# Backup
dump = ziel_verzeichnis + jetzt + '.backup'
 
# DB VACUUM, (Host und User anpassen!)
vacuum = 'vacuumdb -h REMOTEHOST -U USER --all'
 
if os.system(vacuum) == 0:
    print 'VACUUM erfolgreich'
else:
    print 'VACUUM fehlgeschlagen.'
 
# Remote-Datenbank-Dump mit pg_dumpall (Host und User anpassen!)
dbsichern = 'pg_dumpall -h REMOTEHOST -U USER > %s' % (dump)
 
# DB-Dump ausfuehren
if os.system(dbsichern) == 0:
    print 'Datenbank-Dump erfolgreich nach', dump
else:
    print 'Datenbank-Dump fehlgeschlagen.'
 
# Zusammenfuegen
archiv = ziel_verzeichnis + jetzt + '.tar'
 
# zip-Befehl
zippen = 'tar -cvf %s %s' % (archiv, dump)
 
# Sicherung starten;
if os.system(zippen) == 0:
    # Dump loeschen
    if os.system('del %s' % (dump)) == 0:
        print 'Loesche Datenbank-Dump'
    else:
        print 'Loeschen des Datenbank-Dumps fehlgeschlagen'
    print 'Sicherung erfolgreich nach', archiv
else:
    print 'Sicherung fehlgeschlagen.'

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert