Postgres Datenbankbackups per Script erstellen

Ich habe damals, als ich noch 0 Ahnung von Datenbanken hatte, mit PostgreSQL angefangen. Ich dachte in der Tat, das MySQL ja eine kommerzielle Anwendung ist und es ja daher jederzeit vorbei sein kann mit der freien Verfügbarkeit. Da ich eh keine Ahnung hatte, und PostgreSQL im Community - Mund sehr viel mehr können sollte als MySQL, hatte ich mich dafür entschieden.

Inzwischen kenne ich mich wenigstens etwas mit MySQL und dessen Administration aus und habe das zu meiner Standard-Datenbank gemacht. Von PostgreSQL komme ich wegen eines phpBB2 - Forums aber nicht mehr los - also habe ich mich auf die Suche nach einer Möglickeit gemacht, auch PostgreSQL Datenbanken automatisiert per Script Backupen zu können. Standardmäßig hat das Kommandozeilenprogramm "pg_dump" keinen Parameter für das Passwort wie "mysql" und "mysqldump".

Es gibt dennoch einen ähnlich unsicheren Trick, wie man das ganze auf der Shell automatisieren kann: Die Umgebungsvariablen "PGUSER" und "PGPASSWORD". Über die beiden folgenden Methoden kann damit die Authentifikation an der Postgres Datenbank durchgeführt werden:

export PGUSER="postgres_user"
export PGPASSWORD="Passwort"
pg_dump -f /DB.pgsqldump -F c -C -D -h localhost DB

oder alles in einer Zeile:

PGUSER="postgres_user" PGPASSWORD="Passwort" pg_dump -f /DB.pgsqldump -F c -C -D -h localhost DB

Ich denke ich muss nicht erwähnen das dieses sehr unsicher ist. Während die Variablen gesetzt sind kann sie theoretisch fast jeder auf dem System auslesen. Daher sollte als Mindestsicherheitsmaßnahme unmittelbar nach dem dumpen der Inhalt der Variablen durch "unset PGUSER ; unset PGPASSWORD" wieder gelöscht werden. Aber es ist immerhin eine Möglickeit :)

Teilen per: TwitterEmail


Mit dem vim eine farbige motd erstellen

Hallo zusammen!

ENDLICH! Endlich habe ich den Kniff wieder gefunden!
Ich habe auf diesem Server, auf dem auch diese Homepage gehostet ist, eine farbige motd Datei angelegt. Hierin werden neben der IP und einem kleinen ASCII - Bildchen die auf diesem Server konfigurierten Domains aufgelistet.
Damals habe ich mir nicht weiter aufgeschrieben wie das geht, hatte ich das doch nach 1-2 Minuten googlen direkt gefunden.

[caption id="attachment_415" align="alignleft" width="150" caption="Screenshot der MOTD von zoosau.de"]Screenshot der MOTD von
zoosau.de{.size-thumbnail .wp-image-415 width="150" height="150"}[/caption]

Heute laufen auf demselben Server, auf dem früher nur diese eine Domain, zoosau.de, lief schon 6.
Natürlich wollte ich die neuen 5 Domains immer auch gerne in diese Datei eintragen, jedoch fand ich auf Teufel komm raus den Kniff nicht mehr, wie das geht mit farbigem Text!
Heute bin ich der Sache endlich deutlich näher gekommen. Damit ich das nächste Mal nicht wieder umsonst Ewigkeiten suche, beschreibe ich das Vorgehen hier.

Zunächst öffnet man eine Datei, oder legt halt mit dem vim eine neue an. Will man nun ... sagen wir: Rot, blinkend und auf grünem Hintergrund schreiben, dann begibt man sich zunächst in den Insert - Modus (i) und drückt dann STRG+v , gefolgt von der "Pfeiltaste-nach-rechts"-Taste. Man sieht nun folgendes erscheinen: "\^[OC " , wobei der Teil "\^[" blau dargestellt wird (sofern Konsole und vim auf farbige Darstellung konfiguriert sind). Die letzten beiden Zeichen, das "OC" löscht man nun wieder - es geht um darum, das man die Escape-Character "\^[" erzeugt hat. Warum man nicht einfach "\^[" eintippt? Nun: Testet meine Methode und vergleicht das Ergebnis mit dem Vorgehen "\^[" nur einzutippen ;) Es wird dann halt als die Zeichen "\^[" eingefügt, nicht aber als die Kontrollzeichen. Diese werden nur als blaue "\^[" angezeigt; eigentlich stecken da ganz andere Codes hinter. Schwer zu erklären, einfach mal nach "escape sequences" googlen.

So, damit wird die Sequenz eingeleitet. Nun müssen wir eingeben, was wir darstellen wollen. Ein Blick in die Manpage von "dir_colors" gibt uns hier ein paar Möglichkeiten an die Hand. Man kann hier verschiedene Werte übergeben, welche durch ein ";" getrennt und durch ein weiteres "[" initialisiert werden. Für unser "Rote, blinkende Schrift auf grünem Grund" - Beispiel nehmen wir also "05;31;42" (05 = blinkender Text; 31 = rote Schrift im Vordergrund und 42 = Hintergrundfarbe grün). Anschließend wird ein "m" angehangen, um die Kontrollstruktur zu beenden und zu signalisieren "Jetzt kommt mein Text!". Bisher haben wir also: "\^[[05;31;42m"

Als kleines Beispiel schreibe ich nun einfach "Ich bin haesslicher, blinkender Text auf einem unmoeglichen Hintergrund!" direkt hinter das "m". Dieser Text soll also gleich in unserer sehr eigenwilligen Farbkonstellation ausgegeben werden.

Genau wie die Escapesequenz eingeleitet und aktiviert wurde, muss sie nun auch wieder beendet werden um normalen Text schreiben zu können. Sonst hätte man am Ende ja nur eine große, blinkende, häßliche Textdatei, und das wollen wir wohl nicht ;)
Hierzu bedienen wir uns wieder der Tastenkombination STRG-v, "Pfeiltaste-nach-rechts" - Taste und dem löschen der Zeichen "OC". Als nächstes folgt noch ein "[0m". Die 0 setzt den Text wieder auf seine Standardeigenschaften zurück.
Zur Überprüfung schreibe ich in diesem Beispiel noch den Text "Puh, endlich ist der Albtraum vorbei!" dahinter.

So, dann bewundern wir mal unser Werk: Abspeichern, vim verlassen und "cat Dateiname" eingeben.

Ich bin mir seeeeeehr sicher, das dieses HowTo vor inhaltlichen und fachlichen Ungenauigkeiten nur so strotzt. Ich habe jedoch bisher keine bessere Anleitung gefunden. Wer Fehler findet, kann mich gerne durch einen Kommentar korrigieren :)

Teilen per: TwitterEmail