Posted by Patrick Krusenotto on Mär 21, 2009 in
Allgemein,
Linux
Ich habe mir ein Notebook Acer 5630Z gekauft. Ein schönes Notebook, das im T-Online-Shop ohne Betriebsystem angeboten wird. Ich konnte Kubuntu 8.04 ohne Probleme installieren. Leider habe ich es nicht geschafft, das WLAN ans Laufen zu bekommen.
Daraufhin habe ich Ubuntu 8.10 installiert. Es lief ebenfalls auf Anhieb. Um das WLAN ans Laufen zu bringen, reicht es, diesen Treiber zu installieren. Dabei muss der Rechner eine Kabelverbindung ins Internet haben, da der Paketmanager weitere Pakete installieren will. Danach muss der Rechner neu gebootet werden. Dann arbeitet auch das WLAN.
Ob das auch unter Kubuntu 8.10 funktioniert, weiss ich nicht. Ich nehme aber an, daß es ebenfalls Problemlos arbeitet ich habe es nicht ausprobiert.
Tags: 5630Z Linux WLAN
Posted by Patrick Krusenotto on Jan 8, 2009 in
Linux

Ein etwas dubioser Fehler irritiert mich gerade bei einem cron-job. In meiner /etc/fstab sind Einträge wie
sshfs#www.krusenotto.de@ssh.strato.de: /mnt/www/krusenotto.de fuse user,noauto,allow_other 0 0
enthalten. Andererseits gibt es einen cron-Job /etc/cron.daily/fsck
/sbin/fsck -Ta /dev/hdb1
Das führte dazu, daß ich täglich emails bekam mit der Meldung:
WARNUNG: falsches Format in Zeile 13 von /etc/fstab
Dies ist eine Falschmeldung, da fsck die sshfs-Einträge nicht interpretieren kann. Übeltäter ist ein parsing-Fehler im Paket “e2fsprogs”. Er ist aber erst in der Version 1.40.4 gefixt. In meinem Debian-Etch ist aber diese Version nicht enthalten. Siehe hier. Um trotzdem nicht mit täglichen Email genervt zu werden, habe ich folgenden Workaround gemacht:
#!/bin/bash
/sbin/fsck -Ta /dev/hdb1 2>&1 \
| grep -v "^/dev/hdb1: clean,.*files.*blocks" \
| grep -v -E "^WARNUNG: falsches Format in Zeile [0123456789]+ von /etc/fstab" \
| tee /dev/null
Und dieses Skript in der crontab eingetragen. Die überflüssigen Meldungen werden damit abgefischt. Trotzdem werde ich alarmiert, wenn Fehler passieren.
Tags: cron, fsck, sshfs
Posted by Patrick Krusenotto on Jan 3, 2009 in
Linux
Seit ein paar Stunden bin ich fröhlicher Besitzer eines “Microsoft Natural Ergonomic Keyboard”, das unter Kubuntu 8.04 auch sofort problemlos ohne jedes Zutun lief. Nachdem ich schon seit über einem Jahr mit eienem geteilten Keyboar schreibe, kann ich sagen, daß dieses Modell das Beste ist, das ich je hatte.
Um mit GNU-Emacs nun auch die zusätzlichen Tasten nutzen zu können, kann man zum Beispiel Folgendes in seine .emacs-Datei einbauen:
(global-set-key (kbd "<XF86Forward>") 'next-buffer)
(global-set-key (kbd "<XF86Back>") 'next-buffer)
(global-set-key (kbd "<XF86Search>") 'isearch-forward)
Danach können die sehr komfortabel zu erreichenden Tasten “Zurück” und “Vorwärts” laufen durch den Buffer-Ring verwendet werden.
Weitere belegbare Tastencodes sind XF86WWW, XF86Mail, XF86Favorites, XF86AudioMute, XF86AudioLowerVolume, XF86AudioRaiseVolume, XF86AudioPau und XF86Calculator.
Tags: emacs keyboard
Posted by Patrick Krusenotto on Jan 1, 2009 in
Linux
Faust:
Wie nur dem Kopf nicht alle Hoffnung schwindet,
Der immerfort an schalem Zeuge klebt,
Mit gierger Hand nach Schätzen gräbt,
Und froh ist, wenn er Regenwürmer findet
– Johann Wolfgang von Goethe
So oder ähnlich hätte Goethes Dr.Faust mich für mein nochmaliges Aufgreifen dieses Themas abgewatscht. Backups sind eben nicht mehr als die Pflege von altem, schalem Zeug…
Wenn man aber nun wie ich mit der Website des MFC Rheinbach die technische Alleinverantwortung für eine Webprojekt trägt, an dem viele Freunde begeistert mitwirken, muss man dafür sorgen, daß diese Arbeit auch nach einem (Bedien-)Unfall wieder hergestellt werden kann.
Was ich in einem älteren Artikel schon einmal angefangen habe, konnte ich zwischen den Jahren zuende bringen. Es geht um die vollautomatische Erstellung von Backups (Datenbank,Software und Medien) für ein Internetprojekt, dessen Zugriffsmöglichkeiten vom Hoster “1und1″ massiv eingeschränkt sind. Diese Einschränkungen sind vor Allem der Tatsache geschuldet, daß dadurch nur 5€ an Gebühren monatlich anfallen. Da die Lösung verschiedene Kniffe enthält, stelle ich sie hier einmal vollständig vor.
Die Rahmenbedingungen sind:
- Es ist kein SSH, wohl aber SFTP möglich
- Der Text-Content steht in einer Datenbank der Webpräsenz
- Die Datenmenge ist groß (Bildergalerie) und eine simple Lösung mit tar und sftp wäre ungünstig
- Es steht ein Backup-Server zur Verfügung der 24h am Tag läuft
Der Anforderungskatalog sieht nun so aus:
- Es darf kein Login mit Passwort erforderlich sein.
- Es sollen sieben tägliche, drei monatliche und zwölf jährliche Backups zur Verfügung stehen.
- Es sollen nicht täglich alle Daten übertragen werden, sondern es soll ein lokaler Mirror mit rsync gepflegt werden.
- Das Backup soll ebenfalls einen Abzug der Datenbank enthalten.
- Das Backup soll über cron laufen. Da cron ein Email verschickt, sobald Ausgaben anfallen, müssen diese vermieden werden. Auf der anderen Seite soll aber auf jeden Fall ein Email versendet werden, wenn es irgendwelche Probleme gibt.
Herausgekommen ist folgende Lösung:
- Auf den Webserver wurde der ssh-public-key des Backup-servers importiert.
- Ein simples PHP-Skript erzeugt einen Datenbankabzug der zunächst auf dem Webserver selbst abgelegt wird.Dieses PHP-Skript ruft der Backup-Server vor dem Backup über einen einen einfachen HTTP-Request mit wget auf.
- Der Backup-Server bindet über sshfs die Webpräsenz ein. Dies ist möglich, da sshfs kein ssh sondern nur sftp benötigt
- Mittels rsync wird das eingebundene Verzeichnis auf eine lokale Kopie gespiegelt (Dabei wird natürlich auch der dann als Datei vorliegende Datenbankabzug mitgespiegelt).
- Das gespiegelte Verzeichnis wird ge-tar-t, ge-gzip-t und nach einfachen Regeln archiviert.
Nun die Lösung im Einzelnen:
Zunächst muss auf dem Webserver ein Skript installiert werden, das ein Backup der Datenbank erstellt. Ein solches Skript habe ich, da ich kurzerhand auf der Hilfeseite von 1und1 abgestaubt:
<?php
// Bitte hier Ihre Daten eintragen
$host= 'dbxx.1und1.de';
$user= 'dbxxxxxx';
$pass= 'xxxxxxxx';
$db= 'dbxxxxxxx';
// Befehl ausführen und in Zipfile speichern
system(sprintf(
'mysqldump --opt -h%s -u%s -p"%s" %s | gzip > %s/dumpDB.sql.gz',
$host,
$user,
$pass,
$db,
getenv('DOCUMENT_ROOT')
));
echo '+DONE';
?>
Um nun die Kommunikation zwischen Backup-server und client sicherzustellen, muss erreicht werden daß dieser sich ohne ohne passworteingabe einloggen kann. Zu diesem Zweck muss auf diesem ein Schlüssel erstellt werden:
root@maxwell# ssh-keygen
Die folgenden Fragen alle mit Druck auf die Entertaste bestätigen. Dadurch wird ein Schlüssel mit einer leeren Passphrase generiert. Das ist erforderlich, damit auch der noch anzulegende cronjob sich am Webserver anmelden kann.
Dazu wird nun der Schlüssel auf den Webserver gebracht. Leider weist der 1und1-Host den Aufruf von ssh-copy-id zurück. Schade! Das wars dann wohl! Doch nein, es ist natürlich doch möglich (Danke, Dennis!) , nämlich einfach mit sftp:
- per sftp einloggen
-
mkdir .ssh
-
cd .ssh
-
put .ssh/id_rsa.pub authorized_keys
Wenn alles funktioniert hat, ist es anschließend möglich, ohne Paassworteingabe mit sftp auf den Server zu gehen. (Testen!)
Nun benötigen wir noch sshfs, das mit
sudo aptitude install sshfs
installiert werden kann.
Jetzt wird auf dem Server ein mountpoint eingerichtet:
sudo mkdir /mnt/www
sudo mkdir /mnt/www/mfc-rheinbach.de
und ein Verzeichnis für die rsync-Kopie erstellt:
sudo mkdir /var/backups/www/
sudo mkdir /var/backups/www/mfc-rheinbach.de
sudo mkdir /var/backups/www/mfc-rheinbach.de/rsync
Damit ist jetzt alles vorbereitet und es muss nur noch das eigentliche Backup-Skript installiert werden:
#!/bin/bash
# P.Krusenotto Weihnachten 2008
# -----------------------------------------------------------------------------
# Aus der Ausgabe von 'date -R' Wochentag, Tag und Monat bestimmen
DAYOW=`date -R | perl -ane'/^(\w+)/ and print $1'`;
DAY=`date -R | perl -ane'/(\d+)/ and print $1'`;
MONTH=`date -R | perl -ane'print $F[2]'`
# Aufruf des skriptes Zum Datenbank-Backup
/usr/bin/wget -q -O /tmp/backup-database.php http://mfc-rheinbach.de/make-backup.php
# Bei Debian-Etch erforderlich: Das modul fuse muss geladen werden:
/sbin/modprobe fuse
# Mounten des der Webpräsenz
sshfs BENUTZERNAME@mfc-rheinbach.de: /mnt/www/mfc-rheinbach.de -o ro,allow_other
# Syncronisation mit lokaler Kopie:
rsync -a --del /mnt/www/mfc-rheinbach.de/ /var/backups/www/mfc-rheinbach.de/rsync
# Unmount
umount /mnt/www/mfc-rheinbach.de
# Erstellung eines tar-gz-files
cd /var/backups/www/mfc-rheinbach.de
tar -czf /tmp/mfc-rheinbach.tar.gz rsync
# Archivierung der Wochentag-Backups
test -f $DAYOW.tar.gz && rm $DAYOW.tar.gz
cp /tmp/mfc-rheinbach.tar.gz $DAYOW.tar.gz
# Am Monatsersten eine Kopie mit Monatsnamen erstellen
if [ "$DAY" = "01" ];then
test -f $MONTH.tar.gz && rm $MONTH.tar.gz
cp /tmp/mfc-rheinbach.tar.gz $MONTH.tar.gz
fi
# Am 10. des Monats eine Kopie erstellen
if [ "$DAY" = "10" ];then
test -f day-10.tar.gz && rm day-10.tar.gz
cp /tmp/mfc-rheinbach.tar.gz day-10.tar.gz
fi
# Am 20. des Monats eine Kopie erstellen
if [ "$DAY" = "20" ];then
test -f day-20.tar.gz && rm day-20.tar.gz
cp /tmp/mfc-rheinbach.tar.gz day-20.tar.gz
fi
# Ende
Damit wäre alles vollständig. Zu beachten ist, daß das Skript beim erstmaligen Lauf erhebliche Zeit benötigt, da die erste Syncronisation dann einem remote-copy gleich kommt. Eine Stunde oder zwei Laufzeit auch bei schnellem DSL liegen da durchaus im Bereich des Möglichen. Die nachfolgenden Aufrufe dauern dann nur noch wenige Minuten, je nachdem wieviel sich auf dem System inzwischen getan hat. Insgesamt ist dieser Vorgehensweise ausgesprochen Ressourcen-freundlich und es ist durchaus nicht zu erwarten, das es zu Problemen oder Extragebühren durch den Hoster kommt.
Schlussbemerkung
Nochmal zurück zum Anfang: Natürlich ist ein Backup nicht einfach die Pflege von schalem Zeug… Ein voll automatisiertes Backup ist eine Entlastung, damit man sich ungestört neuem Zeug widmen kann. Das hätte auch Dr.Faust - und gerade der ! - verstanden.
Tags: 1und1, backup, sftp, sshfs
Posted by Patrick Krusenotto on Okt 2, 2007 in
Allgemein,
Linux
mit folgendem alias
# recently modified files (SOLARIS 10)
alias rmf = 'find . -type f | xargs stat -c "%n %y" | sort -rk 2 | head $*'
kann man schnell die zuletzt geänderten Dateien in einem Projekt finden. Eine Art “1.Tag nach dem Urlaub” Hack, der mir ermöglicht, mich schneller wieder in ein Thema zu finden.
Der übergebene Parameter geht an “head”, damit ich die Länge der Liste wählen kann.
Posted by Patrick Krusenotto on Jun 18, 2007 in
Allgemein,
Linux
An diesem Wochenende habe ich auf einem alten Rechner das neue Debian Etch installiert. Das System (PIII / 550MHz / 256MB / 160GB) das schon leicht Flugrost angesetzt hat wollte nach der Installlation nicht starten. Immer kam die Meldung Grub Error 18.
Nach ein bischen Googeln fand ich mehrere Hinweise auf BIOS-upgrades. Dies hätte aber eine DOS-Diskette vorausgesetzt. Die einfachere Lösung fand fand ich aber schließlich auch:
Das alte Bios (Award BIOS 1999) ist nicht in der Lage, mit einer 160GB Partition umzugehen. Da das Laden des Kernel mit den Laderoutinen des BIOS erfolgen muss, muss der Kernel in einer eigenen Bootpartition untergebracht werden, die kleiner als - ja kleiner als was eigentlich ? - sein muss. In meinem Fall habe ich die /boot - Partition auf 2 GB gesetzt. Alles dies kann ohne viel Handarbeit mit dem Debian - Installer erfolgen. Der Rest der Platte kann nach Geschmack Partitioniert werden.
Meine Partitionierung sieht beispielsweise so aus:
1. primäre partition, ext3, 2GB, Bootflag, eingehängt auf /boot
2. primäre partition, ext3, 156GB, eingehängt auf /
3. logische partition, swap , 2GB
Posted by Patrick Krusenotto on Mai 27, 2007 in
Allgemein,
Linux
Um von einem entfernten Host via Cron Backups zu ziehen ist es erforderlich, eine Verbindung ohne Passworteingabe aufbauen zu können.
Hierzu kann man wie folgt vorgehen:
1. Auf dem lokalen Rechner einen Schlüssel erzeugen.
$ ssh-keygen -t rsa
Es kommt ein kurzer Dialog mit der Frage nach einer Passphrase. Hier muss als Passphrase einfach “Return” gedrückt werden, woduch eine leere Passphrase gewählt wird.
2. Den erzeugten Schlüssel auf dem entfernten Host ablegen:
ssh-copy-id -i ~/.ssh/id_rsa.pub nutzer@entfernter-host.de
Es erfolgt die Frage nach dem Passwort und eventuell , falls noch nie ssh-Zugriff erfolgt ist) vorher die Abfrage, ob man den Host-schlüssel auf auf dem lokalen Rechner ablegen möchte (diese ist zu bejahen!).
Anschließend kann z.B. mit
$ ssh nutzer@entfernter-host.de
oder
$ scp nutzer@entfernter-host.de:/var/backups/ .
auf den entfernten Rechner ohne Passworteingabe zugegriffen werden.
Posted by Patrick Krusenotto on Mai 17, 2007 in
Allgemein,
Linux
Gerade 24 Stunden ist es her, daß ich GNOME-Evolution gegen den neuen Thunderbird 2.0 ausgeswechelt habe. Da ich durch diesen Schritt ebenalls meine alten Outlook-Emails wieder in Zugriff bekam, bin ich sehr angetan vom neuen Thunderbird. Und vor Allem: Er ist erheblich schneller als Evolution.