Hallo Ubuntuusers Community

19. April 2009 von

So, nun ist zInformatik auch im Planeten von Ubuntuusers.de *freu* :-)

Ich beschäftige mich viel mit der Linux-Konsole und Programmen wie vim, screen und Jabber. Dementsprechend ist auch der Themenschwerpunkt dieses Blogs.

Außerhalb der Beiträge für den Planeten gibt es dieses Jahr jeden Monat einen Artikel über Astronomie, denn 2009 ist das internationale Jahr der Astronomie. Ansonsten schreibe ich hin und wieder auch mal einen Artikel zu Mikrocontrollern oder FPGAs, was auch nicht im Planeten erscheinen wird.

Ich hoffe Euch gefallen meine Artikel.

Viele Grüße,
zimon

Werbung in WordPress nur für Google-Besucher um Smart Pricing zu vermeiden

18. April 2009 von

Nach der Idee von Stephen Cronin (englisch), das Smart Pricing zu vermeiden, indem man nur noch Besuchern die Werbung zeigt, die von Suchmaschinen kommen habe ich das von mir verwendete WordPress Plugin AdSense Manager entsprechend angepasst. Es braucht nur die Datei adsense-manager.php editiert zu werden. Zuerst wird eine Funktion hinter den ganzen require- und include-Anweisungen definiert, die den Referrer checkt, ob der Besucher von einer Suchmaschine kommt (Direkt hinter den Kommentar mit “STANDARD OUTPUT FUNCTIONS”):

function fromasearchengine(){
  $ref = $_SERVER['HTTP_REFERER'];
  $SE = array('/search?', 'images.google.', 'web.info.com', 'search.', 'del.icio.us/search', 'soso.com', '/search/', '.yahoo.');
  foreach ($SE as $source) {
    if (strpos($ref,$source)!==false) return true;
  }
  return false;
}

Die Abfragen habe ich übernommen, es wird also auch Besuchern, die z.B. von der Delicious- oder Yahoosuche kommen die Werbung angezeigt. Als Nächstes sollte direkt unter der neu geschriebenen Funktion die Funktion adsensem_ad() definiert sein. Dort wird der gesammte Inhalt der Funktion in eine if-Abfrage eingeschlossen, die die neue Funktion abfragt. Bei mir sieht sie nun so aus:

//Kept external for backward compatibility
if(!function_exists('adsensem_ad')) {
    function adsensem_ad($name=false) {
        global $_adsensem;
        if(fromasearchengine()){
            if($name===false)
                {$ad=$_adsensem['ads'][$_adsensem['default-ad']];}
            else
                {$ad=$_adsensem['ads'][$name];}
            if(is_object($ad)){
                if($ad->show_ad_here()){
                    echo $ad->get_ad();
                    $ad->counter_click();
                }
            }
        }
    }
}

Nun muss nur noch die Funktion für das Widget angepasst werden. Auch hier wird der entsprechende Teil der Funktion nur ausgeführt, wenn die neue Funktion ergeben hat, dass der Besucher von einer Suchmaschine kommt. Die Function widget() sieht bei mir nun so aus:

// This is the function that outputs adsensem widget.
function widget($args,$n='') {
  // $args is an array of strings that help widgets to conform to
  // the active theme: before_widget, before_title, after_widget,
  // and after_title are the array keys. Default tags: li and h2.
  extract($args); //nb. $name comes out of this, hence the use of $n
  global $_adsensem;
 
  //If name not passed in (Sidebar Modules), extract from the widget-id (WordPress Widgets)
  if($n==''){ $n=substr($args['widget_id'],9); } //Chop off beginning adsensem- bit
  if($n!=='default-ad'){$ad = $_adsensem['ads'][$n];} else {$ad = $_adsensem['ads'][$_adsensem['default-ad']];}
 
  if(fromasearchengine()){
      if($ad->show_ad_here()){
        echo $before_widget;
        if($ad->title!=''){ echo $before_title . $ad->title . $after_title; }
        echo $ad->get_ad(); //Output the selected ad
        echo $after_widget;
        $ad->counter_click();
      }
  }
}

Das war es. Nun braucht nur noch gespeichert zu werden und die Werbung erscheint nur noch bei Suchmaschinenbenutzern.

commandlinefu – die besten Einzeiler auf der Konsole

17. April 2009 von

Auf der Seite http://commandlinefu.com (englisch) werden einzeilige Kommandos (bzw. Kommandoketten) für die Shell und häufige Programme (vim, mysql, screen,…) gesammelt.

Dort gibt es so ziemlich Alles vom kurzen

cd -

mit dem man zum letzten Verzeichnis wechselt bis zu recht langen und komplizierten Kommandos wie

awk '/sshd/ && /Failed/ {gsub(/invalid user/,""); printf "%-12s %-16s %s-%s-%s\n", $9, $11, $1, $2, $3}' /var/log/auth.log

mit dem man sich die Usernamen, IP-Adressen und Zeiten von fehlgeschlagenen SSH-Zugriffen anzeigen lassen kann.

Bei solch komplexen Befehlen ist es praktisch, sie sich als Script zu speichern:

echo "!!" > /path/to/my/bin/script.sh

speichert den letzten ausgeführten Befehl in die Datei script.sh im Verzeichnis /path/to/my/bin
Mit <Alt>+.  lässt sich das letzte Argument in den nächsten Befehl einfügen, so dass

chmod +x <Alt>+.

zu

chmod +x /path/to/my/bin/script.sh

wird und man so das erstellte Script auch direkt ausführbar machen kann. Ich habe mir ein eigenes bin Verzeichnis in meinem Homeverzeichnis erstellt und es in der .bashrc zu $PATH hinzugefügt. Also einfach folgende Zeile hinzufügen:

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

Weitere praktische Kommandos sind

cp filename{,.bak}

um ein Backup einer Datei anzulegen oder

sudo !!

was das letzte Kommando mit sudo ausführt, falls man dies beim ersten mal vergessen hat. (Wie man sieht steht !! für das letzte Kommando)

Mit

ps aux | sort -nrk 4 | head

kann man sich die laufenden Prozesse sortiert nach ihrem Speicherverbrauch anzeigen lassen.

Ziemlich praktisch ist auch

wget -q -O - "http://www.tarball.com/tarball.gz" | tar zxvf -

mit dem man eine .tar.gz Datei herunterladen und gleichzeitig entpacken kann ohne die Datei speichern zu müssen.

Auf der Seite gibt es noch haufenweise andere solch praktische Einzeiler. Natürlich sind auch einige dabei die nicht so sehr viel Sinn ergeben, aber dafür kann jeder ein Kommando bewerten und kommentieren. Man kann auch suchen sowie Tags nutzen. Zusätzlich werden automatisch alle verwendeten Funktionen in einer extra Tagcloud aufbereitet, so dass man auch Kommandos findet die nicht oder schlecht getagt sind.
Somit ist die Seite wunderbar zum Stöbern, aber auch zum gezielten Suchen von Befehlen geeignet.

Also los, trainiere Dein Commandline-Fu ;-)

vim Easter Eggs

13. April 2009 von

Da Ostern die Zeit der Easter Eggs (Ostereier) ist, habe ich hier ein paar Eier aus vim. Hier sind es nur Hilfekommandos, die zu lustigen Stellen der Dokumentation führen.

Einfach ausprobieren (es gehts nichts kaputt):

  • :h!
  • :h holy-grail
  • :h 42
  • :h UserGettingBored

Wer noch mehr Easter Eggs in vim kennt, kann sie mir gerne in den Kommentaren mitteilen.

Guake – ein ausklappendes Terminal

11. April 2009 von

Wie ich eben auf Stefano Forenzas Blog gelesen habe, ist die Version 0.4 von Guake herausgekommen und soll recht stabil sein. Daraufhin habe ich mir das Gnome-Pendant zu Yakuake auch einmal angesehen.

Ein Screenshot von Guake

Ein Screenshot von Guake

Mit F12 lässt sich das Terminal von oben in den Bildschirm ausklappen und bietet direkt eine Shell zum Arbeiten an. Sehr praktisch finde ich den Fullscreen-Modus, den man standardmäßig mittels F11 ein- und ausschaltet.
Man kann sogar in den Einstellungen Screen als Interpreter definieren. Damit das funktioniert muss man aber gleichzeitig die Option “Run command as login shell” aktivieren. Dann kann man auch die Tabbar dekativieren.

Mittels Compiz soll auch echte Transparenz funktionieren. Da ich kein Compiz nutze finde ich die Möglichkeit ein eigenes Hintergrundbild oder den Desktophintergrund halbtransparent einzufügen sehr schön.

Backspace hat bei mir mit den Standardeinstellungen nicht funktioniert und ich musste in den Einstellungen unter dem Tab “Compatibility” bei “Backspace key generates:” von “ASCII DEL” auf “Control-H” umstellen.

Ansonten finde ich das Programm sehr praktisch, da man so nicht immer ein gnome-terminal geöffnet hat und es von überall aus mit einer Taste erreichbar ist.

Um das Programm automatisch zu starten, kann man unter System -> Einstellungen -> Sitzungen guake als Startprogramm hinzufügen. Dafür klickt man im Tab “Startprogramme” auf “Hinzufügen”, schreibt bei Name “guake terminal” rein und bei Befehl “guake”.

Herunterladen kann man das Programm für Hardy und Intrepid bei getdeb.net. Für andere Distributionen kann man sich die Sourcen von der offiziellen Seite besorgen.

[Update]Ich habe gelesen, dass guake für Ubuntu 8.10 Intrepid in den Paketquellen verfügbar ist. Allerdings weis ich nicht in welcher Version.
Für Dualscreen-Systeme gibt es auf gotbrain.de eine angepasste Version von guake, die das Programm auf einen Bildschirm begrenzt. Getestet habe ich dies allerdings nicht.[/Update]

Firefox Plugin – Update Scanner informiert über Änderungen an einer Seite

8. April 2009 von

Da es immer noch Homepages und sogar Blogs ohne RSS-Feed gibt, ist das das Add-On Update Scanner recht praktisch.

Das Plugin speichert die aktuelle Seite und überprüft in einstellbaren Intervallen, ob sich die Seite gegenüber der gespeicherten Version geändert hat. Hat sich die Seite geändert, geht ein Infofenster in der rechten unteren Ecke auf, was einen über die Aktualisierung informiert. Ein Klick auf den entsprechenden Link öffnet die Seite in einem neuen Tab und zeigt die Änderungen gelb hinterlegt an.

Um eine Seite überprüfen zu lassen, kann man auf der Seite das Kontextmenü mit der rechten Maustaste aufrufen und dort “Seite auf Aktualisierungen prüfen…” auswählen. Im sich öffnenden Fenster kann man nun Einstellen, wie oft auf Aktualisierungen überprüft werden soll und wieviel Text sich geändert haben muss, damit die Aktualisierung angezigt wird. (Den Intervall zum überprüfen sollte man nicht zu niedrig wählen, da dies unnötigen Traffic erzeugen würde)

Man kann auch auf das Icon des Update Scanners in der Statusleiste (unten rechts) klicken, wonach sich eine Seitenleiste öffnet, in der alle Seiten aufgeführt sind, die überprüft werden. Dort kann man auch neue Seiten hinzufügen oder löschen und die Einstellungen ändern. Die Überprüfung lässt sich in der Leiste auch von Hand starten.

Hier der Link zum Herunterladen bzw. Installieren: https://addons.mozilla.org/de/firefox/addon/3362

Makros aufzeichnen mit vim

5. April 2009 von

Da vim komplett per Tastatur bedienbar ist, lässt sich so ziemlich jede denkbare Aktion als Makro aufzeichnen.

Ähnlich wie bei den Registern kann man auch jedem Buchstaben ein Makro zuweisen. Eingeleitet wird die Aufzeichnung mittels q<name>, wobei <name> ein beliebiger Buchstabe ist. Beispiel wäre qa oder qb. Jede Taste, die man ab dort drückt wird aufgezeichnet, egal in welchem Modus. Möchte man die Aufnahme beenden, so drückt man einmal q.

Nun ist das Makro gespeichert und man kann es mittels @<name> also z.B. @a ausführen.
Mit @@ führt man das letzte Makro erneut aus. Man kann natürlich auch Quantifizierer benutzen und so z.B. 5 Mal das Makro a ausführen mit 5@a

Ein Beispiel:

Man möchte die Ausgabe von ls -lh, die in eine Datei gespeichert wurde so umschreiben, dass zuerst der Dateiname und dann die Größe kommt. Im Moment hat die Datei die Form

Rechte Hardlinks User Group Größe Bearbeitungszeit Dateiname

also z.B.

-rw-r--r-- 1 zimon zimon 13K 2009-04-04 16:24 beispiel.txt

Hinterher soll es so aussehen:

beispiel.txt 13K

Nun könnte man natürlich versuchen einen regulären Ausdruck zu finden wie z.B.

:%s/.\{10} [0-9]\+ [a-z0-9]\+[ ]\+[a-z0-9]\+[ ]\+\([0-9a-zA-Z\,]\+\) [0-9\-]\+ [0-9\:]\+ \(.\+\)/\2 \1/

der die Zeilen entsprechend ändert, aber man kann die Aufgabe auch mit einem Makro lösen. Dafür tippt man

qad4WWd2WdBA pj0q

um folgendes zu erreichen:

  • qa – startet die Aufnahme unter a
  • d4W – löscht die ersten 4 Wörter (durch Leerzeichen getrennte Strings)
  • W – überspringt das nächste Wort (die Größenangabe)
  • d2W – löscht die nächsten 2 Wörter
  • dB – löscht nun das vorherige Wort (die Größenangabe)
  • A <ESC> – fügt am Ende der Zeile ein Leerzeichen ein (Hier könnte man nun auch einen Bindestrich oder Ähnliches einfügen)
  • p – fügt das letzte gelöschte Wort (die Größenangabe) ein
  • j0 – springt an den Anfang der nächsten Zeile (damit man dort von vorne anfangen kann)
  • q – beendet die Makro-Aufzeichnung

Nun kann man diese Befehlssequenz mit @a ausführen, wobei immer an den Anfang der nächsten Zeile gesprungen wird. Besteht die Ausgabe aus 100 Zeilen, so kann man nach dem Aufzeichnen des Makros die restlichen 99 Zeilen mit 99@a bearbeiten.

Makros sind bei sehr vielen Änderungen extrem langsam, da sie die einzelnen Befehle immer wieder nacheinander ausführen müssen. Bei sehr vielen Änderungen sind regulären Ausdrücken daher der Vorzug zu geben, wenn es sich damit machen lässt. Beim obigen Beispiel benötigte das Makro für 2000 Zeilen einer ls -lh Ausgabe ca 40 Sekunden, während der obige reguläre Ausdruck alle Änderugnen innerhalb von einer Sekunde erledigte. Dafür kann man mit Makros Aufgaben erledigen, die mit regulären Ausdrücken nicht realisierbar sind.

Einige Tipps und Tricks für Screen

3. April 2009 von

Ploppor hat schon eine kleine Einführung in Screen gegeben. Nun möchte ich diese durch ein paar praktische Tipps erweitern.

Mit Splitscreens arbeiten

Um ein Fenster horizontal zu spliten kann man Strg-a S nutzen. Daraufhin teilt sich das Fenster und man kann mit Strg-a Tab zwischen beiden Fenstern hin- und herschalten. Das neue Splitfenster ist noch leer, aber man kann einfach mit Strg-a p oder Strg-a n zwischen den bereits geöffneten Fenstern hin und herschalten oder mit Strg-a c ein neues anlegen.
Man kann auch die Größe der Fenster ändern. Dafür geht man mittels Strg-a : in den Command Line Modus und gibt fogendes ein:

resize size

Dabei steht size für die Anzahl der Zeilen, die bestimmt wie groß das Fenster sein soll.

Um ein Fenster eines Splitscreens wieder zu schließen kann man Strg-a X benutzen. Mit Strg+a Q werden alle anderen außer das aktuelle Fenster eines Splitscreens geschlossen

Mehrere Screen Sessions verwalten

Startet man Screen mit

screen -S sessionname

so wird dieser Session der Name “sessionname” mitgegeben. Wenn man nun mehrere detached Sessions hat, kann man die gewünschte Session einfach mit

screen -r sessionname

attachen.
Dabei kann man sich mit folgendem Befehl auch alle laufenden Sessions anzeigen lassen:

screen -ls

Programme mit Screen im Hintergrund starten

Man kann mit Screen ein Programm starten und die Session gleichzeitig detachen, so dass man wieder in der Kommandozeile ist und weiter arbeiten kann.
Die Screensession beendet sich automatisch, wenn auch das Programm beendet wird. Um z.B. top zu starten kann man nun folgenden Befehl benutzen:

screen -S top_session -md top

Der Session wurde auch direkt ein Name gegeben, so dass man sie später von anderen Sessions unterscheiden kann.
So kann man seine Befehle auf dem Server direkt in je einer Screen-Session starten und mit screen -ls sehen, ob z.B. Kopieraktionen abgeschlossen sind.
Das Starten im Hinergrund funktioniert nur, wenn man keine automatischen Aktionen für den Start von Screen in der .screenrc definiert hat.

Konsolenausgaben in eine Datei schreiben

Um die Ausgabe eines Fensters zu loggen gibt es folgende Befehle, die man im Command Line Modus ( Strg-a : ) eingeben kann:

  • logifle dateiname – gibt den Namen der Datei an, in die gespeichert werden soll
  • flush sekunden – gibt die Häufigkeit der Speicherung in Sekunden an (Standard 10)
  • log on – schaltet das Logging an
  • log off – schaltet das Logging aus

Session mit Passwort schützen

Man kann eine Session auch mit einem Passwort schützen, indem man im Command Line Modus password eingibt. Danach wird man 2 mal nach einem Passwort gefragt.
Wird die Session nun detached und man möchte sie wieder aufnehmen, so wird man zuerst nach dem Passwort gefragt.

Eine Session mehrmals attachen

Man kann mittels

screen -x sessionname

eine Session auch mehrmals attachen. Praktisch, wenn die ssh Verbindung abgebrochen ist und die Session somit nicht detached wurde.
Man kann eine Session sogar anderen Usern freigeben, die diese dann auch attachen können. Dafür gibt man im Command Line Modus die folgenden zwei Befehle ein:

multiuser on
acladd username

Wobei username der Name des Users ist, der freigegeben werden soll.
Nun kann ein anderer User diese Session attachen mit

screen -c username/sessionname

Hier ist username der Name des Users, dem die Session gehört.
Um anderen Usern die Session freizugeben muss allerdings das suid-Bit von Screen gesetzt werden und der Ordner /var/run/screen auf die Rechte 755:

sudo chmod u+s /usr/bin/screen
sudo chmod 755 /var/run/screen

Backup mit Linux Boardmitteln

2. April 2009 von

Ich mag die Kommandozeile und ich mag Standardwerkzeuge. Daher möchte ich hier ein paar Backuplösungen vorstellen, die nur mit Standardwerkzeugen auskommen.

Die Vorteile sind

  • Die Werkzeuge sind auf fast jedem System Verfügbar
  • Die Werkzeuge sind im Allgmeinen sehr gut erprobt und enthalten quasi keine Bugs
  • Alles kann mit der Konsole gemacht werden. Also auch wenn man keine graphische Oberfläche hat oder per ssh eingeloggt ist
  • Vieles kann mittels Bash-Scripts automatisiert werden
  • Die Backups können meistens auch unter schwierigen Umständen noch erstellt und eingespielt werden



Komplettes Festplatten-Image erstellen

Um ein Komplettes Image der Festplatte zu erstellen kann man tar benuzten. Dies ist bei so ziemlich jeder Linux-Distribution standardmäßig installiert.

Man bootet mit einer LiveCD oder Knoppix CD. Wenn man einen Root-Server hat, kann man das Rescue-System (so heißt es bei Hetzner, andere Provider sollten jedoch ähnliches anbieten) booten. Nun erstellen wir ein Verzeichnis und mounten darin die Festplatte, die gesichert werden soll. Hat man sein System auf mehrere Partitionen verteilt, kann man diese an die entsprechenden Stellen einbinden oder von jeder einzelnen ein Backup machen. Das folgende Beispiel zeigt, wie man die Partition /dev/sda1 sichert. Die Datei liegt hinterher im Wurzelverzeichnis der Partition als image.tar.gz.  (Alle Befehle mit root-Rechten ausführen):

mkdir /mnt/system
mount /dev/sda1 /mnt/system
cd /mnt/rescue
tar cvzpf image.tar.gz ./ --exclude=image.tar.gz

Diese Datei kann nun auf einen externen Datenträger, einen FTP-Server  oder eine andere Partition/Festplatte kopiert werden.

Ist auf /dev/sda1 nicht genug Platz, so kann man auch direkt auf eine andere Partition bzw. einen Wechelsdatenträger sichern. Im folgenden wird ein Backup von /dev/sda1 nach /dev/sda2 gemacht:

mkdir /mnt/system
mount /dev/sda1 /mnt/system
mkdir /mnt/backup
mount /dev/sda2 /mnt/backup
cd /mnt/backup
tar cvzpf image.tar.gz -C /mnt/system ./

Das Praktische an dieser Datei ist, dass man sie jederzeit wieder auf eine (neue) Festplatte aufspielen kann und das gesammte System wieder hergestellt ist (lediglich der Bootloader muss ggf. neu installiert werden). Dabei ist egal, ob der die Partition eine andere Größe hat (solange alles drauf passt) oder mit einem anderen Dateisystem formatiert ist.
Das Einspielen des Backups geht nun folgendermaßen: Wieder Booten mit LiveCD oder im Rescue-System und dann:

mkdir /mnt/system
mount /dev/sda1 /mnt/system
cd /mnt/system
cp /path/to/backup/image.tar.gz .
tar xvzpf image.tar.gz

Der Kopierbefehl muss entsprechend angepasst werden oder man entpackt direkt vom anderen Medium:

mkdir /mnt/system
mount /dev/sda1 /mnt/system
mkdir /mnt/backup
mount /dev/sda2 /mnt/backup
cd /mnt/backup
tar xvzpf image.tar.gz -C /mnt/system

Wi man Grub neu installiert ist auf dem Ubuntuusers Wiki im Artikel Grub sehr gut beschrieben. (Ich gehe mal davon aus, dass lilo kaum noch genutzt wird und wer es noch nutzt, wird wissen wie man es neu installiert)



Einzelne Verzeichnisse sichern

Möchte man nur bestimmte Verzeichnisse sichern, so kann man auch tar verwenden. Im Prinzip geht dies genauso, nur dass man nicht unbedingt neu zu booten braucht. (Die Pfade müssen dann entsprechend angepasst werden und es braucht nichts gemountet werden. Verzeichnisse brauchen auch nur einmal am Anfang erstellt werden.) Ein Backupscript mit tar gibt es im Ubuntuusers Wiki. Ein weiteres sehr gutes Script mit vielen weiteren Optionen und automatischem FTP-Upload ist Tartarus (Dies ist ein recht großes Bash Script, welches jedoch nur Standardwerkzeuge nutzt).
Möchte man MySQL Datenbanken sichern, so sollte man vorher einen Dump machen und diesen sichern, da sich die Datenbank sonst in einem inkonsistenten Zustand befinden kann.
Hier ein kleines Script, welches alle Datenbanken sichert:

#!/bin/bash
 
# Wohin sollen Datenbank Backups geschrieben werden?
DB_BACKUP_PATH=/pfad/zum/backup/verzeichnis
 
cd $DB_BACKUP_PATH
 
# Bereinigte Liste der Datenbanken erzeugen
#ersetze passwort mit dem root-Passwort der MySQL Datenbank
DBASELIST=`mktemp`
mysqlshow -ppasswort | awk '{print $2}' | grep -v Databases | sort > $DBASELIST
 
for x in `cat $DBASELIST`; do
    #echo "Datenbank: $x sichern";
    mysqldump --opt -ppasswort $x > $x.sql;
done;
 
# Alte .gz-Dateien loeschen
rm *.gz
 
# Dateien zippen
gzip *



Inkrementelles Backup mit rsync

Möchte man regelmäßig ein Backup von zu Hause ziehen, so ist rsync die beste Wahl. Denn es werden nur Dateien kopiert, die sich geändert haben.
rsync ist auch dann eine gute Wahl, wenn man die Möglichkeit hat auf einen Server mit ssh Zugriff zu sichern. Natürlich kann rsync aber auch in ein Verzeichnis sichern.
Eine ausführliche Erklärung zu rsync gibt es im Ubuntuusers Wiki (und natürlich in der manpage). Ein sehr gutes Backup-Script mit Erklärung wurde von Heinlein online gestellt.
Auch bei rsync-Backups ist bei Datenbanken darauf zu achten, dass vorher ein Dump erstellt und nur dieser gesichert wird.



Meine Backuplösung

Ich nutze Tartarus und rsync für die Backups.
Für Tartarus habe ich 3 Configurationen eingerichtet: eine für die Webaccounts, eine für die Datenbanken und eine für Konfigurationsdateien (/etc). Bei den Datenbanken wird obiges Script als Pre-Hook vor dem eigentlichen Backup durchgeführt um nur die Dumps zu sichern. Die Backups werden symmetrisch GPG verschlüsselt, da sie per FTP auf den Backupserver geladen werden, der von Hetzner zur Verfügung steht. Es wird einmal die Woche ein volles Backup und jeden Tag dazwischen ein inkrementelles Backup der Daten erstellt. Backups, die älter als eine Woche sind, werden automatisch gelöscht.
Mit rsync wird jeden Tag ein inkrementelles Backup zu mir nach Hause durchgeführt.

Aprilscherze 2009 im Netz

1. April 2009 von

Es ist wieder der 1. April und das Netz ist voller Scherze.

Hier sammel ich mal einige von ihnen, die mir im Laufe des Tages so unter kommen.

Google hat jedes Jahr mehrere Aprilscherze auf Lager (alle in englisch)

Es werden bestimmt noch mehr werden, daher einfach später nochmal wieder kommen ;-)


Bloggeramt.de frisch gebloggt Blogverzeichnis - Blog Verzeichnis bloggerei.de