Einloggen Registrieren Nutzerliste
Linux From Scratch Ubuntu (CD-Mirror)
Gilde êVoluTion Raid Happy Tree Friends Raid MCToo Gilde Saints and Sinners
Ereignis-Kalender Metadaten Passwörter

Blog-Artikel vom November 2007

Vorheriger Monat  Vorheriger Monat  |  Nächster Monat  Nächster Monat Zur Artikelübersicht  

Backups aller MySQL-Datenbanken, Version 2

28.11.2007 | Code | 0 Kommentare
Ich habe das Skript, das in diesem Post beschrieben ist, überarbeitet. Nun macht es nicht nur Backups aller lokalen MySQL-Datenbanken, sondern löscht vorher auch alle Backups, die seit einer gewissen Anzahl an Tagen nicht mehr geändert wurden.
Vorteil: Im Backup-Verzeichnis liegt nun immer nur eine festgelegte Anzahl an Sicherungen. Das sieht dann z.B. so aus:

test@bheil-pc:~> ls /var/backups/sql/
insgesamt 28K
drwxr-xr-x 2 root root 4,0K 2007-11-22 06:03 2007.11.22
drwxr-xr-x 2 root root 4,0K 2007-11-23 06:03 2007.11.23
drwxr-xr-x 2 root root 4,0K 2007-11-24 06:03 2007.11.24
drwxr-xr-x 2 root root 4,0K 2007-11-25 06:03 2007.11.25
drwxr-xr-x 2 root root 4,0K 2007-11-26 06:03 2007.11.26
drwxr-xr-x 2 root root 4,0K 2007-11-27 06:03 2007.11.27
drwxr-xr-x 2 root root 4,0K 2007-11-28 15:27 2007.11.28

Man sieht also, es liegen generell immer Sicherungen der letzten 7 Tage bereit.

Hier nun das angepasst Skript:
#!/bin/bash

####################
# Das hier anpassen!
####################
# Das Sicherungsverzeichnis - hier landen alle Backups als
# Unterverzeichnisse und nach Datum sortiert
# Achtung: Dieses Verzeichnis muss existieren und das
# Skript muss dort Schreibrechte besitzen!
SAVEDIR="/home/backup/sql"

# Anzahl der Sicherungen, sprich Tage - 6 steht fuer eine
# Woche (7 Sicherungen, da die aktuelle nicht gezaehlt wird)
DAYSOLD="6"

# Temp-Verzeichnis (das Skript braucht dort Schreibrechte)
TMPDIR="/tmp"

# Root-Passwort zur MySQL-Datenbank
DBPWD="PASSWORT"

####################
# Ab hier i.d.R. keine Aenderung mehr noetig
####################

# Erzeuge Liste aller Datenbanken in $TMPDIR/dbaselist.txt
mysqlshow -u root -p$DBPWD | awk '{print $2}' | \
grep -v Databases | sort > $TMPDIR/dbaselist.txt

# Finde und loesche alles, was seit $DAYSOLD Tagen nicht
# veraendert wurde
find $SAVEDIR -maxdepth 1 -mindepth 1 \
-mtime +$DAYSOLD -exec rm -rf {} \;

# Geh ins Sicherungsverzeichnis und lege ein Verzeichnis
# des heutigen Datums an
cd $SAVEDIR
mkdir -p `date +%Y.%m.%d`
cd `date +%Y.%m.%d`

# Liste der Datenbanken durchgehen und Sicherung erstellen
for x in `cat /tmp/dbaselist.txt`; do
mysqldump --opt -u root -p$DBPWD $x >$x.sql;
done;

# Aufraeumen
rm -f *.gz
rm -f /tmp/dbaselist.txt

# Alle Dateien zippen
gzip *

Festplatten automatisiert überwachen

28.11.2007 | Software | 0 Kommentare
Moderne Festplatten verfügen mit S.M.A.R.T. über eine Schnittstelle, mit der wichtige Daten der Platte permanent überwacht werden können. So kann man früh erkennen, ob seine Platten wohl bald den Geist aufgeben werden und ggf. die betroffene Platte tauschen.

Aber wie richtet man eine permanente Überwachung dafür unter Kubuntu (oder anderen Linux-Systemen) ein?
Zuerst installiert man das Paket smartmontools mit

sudo aptitude install smartmontools

Aptitude verrät folgendes über dieses Paket:

Das Paket smartmontools enthält zwei Werkzeuge (smartctl und smartd) zur Kontrolle und Überwachung von Speichersystemen mittels dem »Self-Monitoring, Analysis and Reporting Technology System« (S.M.A.R.T.), das in die meisten modernen ATA- und SCSI-Festplatten eingebaut ist. Es wurde vom Paket smartsuite abgeleitet und beinhaltet Unterstützung für ATA/ATAPI-5-Platten. Es sollte auf jedem modernen Linux-System funktionieren.


Interessant ist nun smartd für uns, ein Daemon, der permanent im Hintergrund die Platten überwachen kann. Um ihn zu konfigurieren, müssen wir die Datei /etc/smartd.conf bearbeiten:

sudo mcedit /etc/smartd.conf

In der Datei sind sehr viele Konstellationen und Möglichkeiten zur Überwachung aufgeführt, allerdings alle auskommentiert. Dennoch ist ganz oben eine Zeile, die mit "DEVICESCAN ..." beginnt, nicht auskommentiert - dies sollten wir aber tun. Diese Zeile sorgt dafür, dass alle Laufwerke gescannt werden (auch CD-Roms z.B., die kein S.M.A.R.T. haben - was unschöne Meldungen bringt). Wir sollten lieber die Platten direkt angeben, die wir gescannt haben wollen.

Um bei all den Einstellungen die richtige zu finden, kann man etwas Zeit aufwenden. Ich habe z.B. bei linuxjournal.com einen guten Artikel gefunden. Auch im Gentoo Wiki wird man fündig. Ich bin dazu gekommen, folgendes in diese Datei einzufügen (das ist eine Zeile in der Datei):

/dev/hda -a -I 194 -W 4,45,55 -S on -o on -s (S/../.././06|L/../../1/08) -m benjamin.heil@bheil.net -M daily

Dies bewirkt folgendes:
  • * Es wird alles geprüft, was mit S.M.A.R.T. möglich ist
  • * Festgehalten werden Temperaturschwankungen um mehr als 4 Grad
  • * Gemeldet werden Temperaturen über 45 Grad
  • * Eine Mail wird gesendet bei SMART-Fehlern oder wenn die Temperatur über 55 Grad steigt (Warnmeldungen werden täglich neu versendet, wenn nötig; der Mail-Versand benötigt einen installierten MTA, das wird aber in einem extra Post beschrieben)
  • * Mache einen Kurztest immer frühs zwischen 6 und 7 sowie einen Langtest jeden Montag morgen zwischen 8 und 9 (das lohnt natürlich nur für Systeme, die permanent laufen)

Analog dazu habe ich das auch mit den beiden anderen Platten gemacht - dies sind SATA-Platten:

/dev/sda -a -d sat -I 194 -W 4,45,55 -S on -o on -s (S/../.././06|L/../../1/08) -m benjamin.heil@bheil.net -M daily
/dev/sdb -a -d sat -I 194 -W 4,45,55 -S on -o on -s (S/../.././06|L/../../1/08) -m benjamin.heil@bheil.net -M daily

Einziger Unterscheid ist hierbei die Angabe von -d sat. Man kann das erstmal ohne dieser Anweisung reinschreiben - beim Testlauf (siehe unten) wird gemeckert, falls diese Anweisung nötig ist. Genaueres steht in der Man page (man smartd).

Nun können wir einen Testlauf starten, um zu schauen, ob das auch richtig funktioniert:

sudo smartd -q onecheck

An der Ausgabe kann man erkennen, ob alles glatt geht (nach Zeile "Started with '-q onecheck' option. All devices sucessfully checked once." schauen).

Nun müssen wir dem System nur noch beibringen, dass es den Daemon automatisch und immer starten soll. Dazu editieren wir die Datei /etc/defaults/smartmontools:

sudo mcedit /etc/default/smartmontools

und ändern die Zeile

start_smartd=no

in

start_smartd=yes

Nun den Dienst mit

/etc/init.d/smartmontools restart

neu starten und smartd sollte im Hintergrund laufen und unsere Platten bewachen. Dies kann man mit

ps ax | grep smartd

nachprüfen, es sollte eine Zeile angezeigt werden, die folgendes enthält:

/usr/sbin/smartd --pidfile /var/run/smartd.pid

Nachtrag:
Es ist auch sinnvoll, das Paket hddtemp zu installieren (sudo aptitude install hddtemp). Damit kann man sehr einfach die Festplattentemperatur auslesen und dies sogar mittels Programmen anzeigen lassen (z.B. mit ksensors oder kima für KDE).
Wie das geht, wird genauer in einem Artikel im Ubuntu Wiki beschrieben.

Multimedia-Tasten unter KDE zum Laufen bringen

22.11.2007 | Software | 0 Kommentare
Ich habe eine Tastatur, die Extra-Tasten hat. Vor allem die Tasten, um die Lautstärke zu erhöhen bzw. zu verringern, habe ich seit meinem Umstieg auf Kubuntu vermisst. Heute habe ich mich mal daran gemacht, diese wieder zum Funktionieren zu bringen. Das folgende bezieht sich hierbei ausschließlich auf KDE!

Den Tasten müssen entsprechende Symbole zugeordnet sein. Dies kann man mit dem Programm xev überprüfen (genaueres steht im Gentoo Wiki). Da das bei mir schon gepasst hat, überspringe ich diesen Teil mal. (Wer hier ein Problem hat, sollte dem Gentoo Wiki folgen.)

Zwar waren also die richtigen Symbole XF86AudioRaiseVolume und XF86AudioLowerVolume verknüpft, dennoch passierte nichts, wenn man die Tasten drückte. Zuerst probiere ich in KMix, den Hauptkanal globale Tastenkombinationen zuzuordnen (rechte Maustaste auf den Kanal direkt). Allerdings brachte das auch keinen Erfolg.


kdeaddons

21.11.2007 | Software | 0 Kommentare
Wie immer sinds die Kleinigkeiten, die einen manchmal erfreuen können.

Durch das Installieren des Pakets kdeaddons werden einige Extras für KDE geladen, wie z.B. ein kleiner Systemmonitor für die Taskleiste. Sind nur Kleinigkeiten, aber trotzdem sehr hilfreich, finde ich.

sudo aptitude install kdeaddons

Noch ein Nachtrag:
Das Paket kchmviewer lohnt sich auch zu installieren. Gelegentlich muss man doch mal eine komplierte HTML-Hilfe ansehen (Endung .chm). Das kommt mehr aus der Windows-Welt und ist deshalb unter Linux unüblich. Aber falls man es doch braucht, ist kchmviewer das KDE-Programm dazu.

Ich habe hier nach einer Möglichkeit gesucht, da das "Buch" Cool Shell Skripts von http://freebooks.homelinux.org/ in diesem ungewöhnlichen Format vorliegt.

WankooMP3 gestoppt

20.11.2007 | World of Warcraft | 0 Kommentare
Wie schon im Forum angekündigt, habe ich die Entwicklung von WankooMP3 für World of Warcraft gestoppt. Ich habe nicht die Zeit übrig und auch andere, wichtigere Dinge zu erledigen.

Obwohl ich viele Pläne für WankooMP3 im Kopf hatte, bezweifle ich, dass ich in Zukunft mehr Zeit für dieses Addon finden werde.

Die Konsequenz daraus ist ganz klar, dass ich WankooMP3 einstelle und nicht mehr weiterentwickeln werde. Sad

Es gibt allerdings Alternativen, z.B. MusicStream, was im Grunde genauso funktioniert wie WankooMP3 und ein Ace2-Addon ist.

TV-Browser

18.11.2007 | Software | 0 Kommentare
Ab heute unterstütze ich das Projekt TV-Browser. Der Server hier wird nun als Mirror für TV-Daten verwendet.

TV-Browser ist eine kostenlose TV-Zeitschrift für den PC mit folgenden Features:
  • * Elektronische TV-Zeitschrift
  • * Open Source
  • * mehr als 170 TV-Sender (inkl. Premiere)
  • * mehr als 60 Radio-Sender
  • * Windows, Linux, MacOS, OS/2
  • * Plugins, Skins, Icons
  • * Kostenlos, keine Werbebanner

TV-Browser basiert auf Java und läuft deshalb auf allen gängigen Betriebssystemen.

Mich persönlich interessiert natürlich die Verwendung unter Linux:
Leider gibt es (noch?) kein Paket für Ubuntu, aber es reicht aus, TV-Browser herunterzuladen und in ein beliebiges Verzeichnis zu entpacken. Dort führt man einfach die Datei tvbrowser.sh aus. Eventuell muss man diese zuvor ausführbar machen:

chmod +x tvbrowser.sh

Natürlich sollte man sich vorher vergewissern, dass Java auf dem System installiert ist und einsatzbereit ist:

java -version

TV-Browser benötigt mindestens Version 5.0!

Wie man Java unter (K)Ubuntu ganz einfach und schnell installieren kann, wird in einem anderen Artikel erklärt!

Nachtrag:
Im Wiki ist eine Möglichkeit angegeben, TV-Browser ganz normal über ein Paket unter Ubuntu zu installieren. Dann entfällt das manuelle Entpacken.

Fehler beim Aushängen von CIFS-Partitionen unter Ubuntu

17.11.2007 | Linux | 0 Kommentare
Ich hatte in meinem Heimnetzwerk einige Partitionen über smbfs eingehängt, allerdings erfuhr ich nun, dass smbfs veraltet ist und man stattdessen cifs verwenden soll. Das Umstellen von smbfs auf cifs war auch nicht weiter schwierig und funktionierte tadellos, bis zu dem Punkt, an dem ich das System herunterfuhr.
Beim Shutdown wurde ich dann mit der Meldung

CIFS VFS: server not respondig

konfrontiert und das System hängte sich auf. Kurz mal bei Google vorbei geschaut erfuhr ich, dass dies daran liegt, dass Mounts per CIFS über einen Daemon laufen und nicht direkt im Kernel. Dieser Daemon wird allerdings unter Ubuntu beendet, bevor die Mounts ausgehängt werden - deshalb krachts.

Im Ubuntuforum ist ein schneller Fix für dieses Problem zu finden. Dies ist einfach ein Skript, dass beim Herunterfahren alle Mounts aushängt. Dann klappt das auch wieder.

Das Skript einfach nach /etc/init.d speichern und einen symbolischen Link in den entsprechenden Runlevels vornehmen. Und nicht vergessen, dass Skript ausführbar zu machen:

sudo chmod +x mountcifs
sudo mv mountcifs /etc/init.d
cd /etc/rc0.d
sudo ln -s /etc/init.d/mountcifs K02mountcifs
cd /etc/rc6.d
sudo ln -s /etc/init.d/mountcifs K02mountcifs

Falls sich nicht jeder im Ubuntuforum extra registrieren will, hier der Inhalt des Skripts (dies evtl. als Datei mountcifs speichern und obige Befehle ausführen):

#!/bin/bash
#
# mountcifs - Unmounts samba-cifs filesystems
# -> convenience script to be called in the shutdown/reboot sequence of Ubuntu Dapper
# as K02umountcifs
# Written by Max Durden
# max.durden@gmail.com

start() {
echo "mountcifs: nothing to do!"
}

stop() {
echo "Unmounting samba-cifs filesystems..."
MOUNTED_CIFS_DIRS=`mount -t cifs| cut -d\ -f3`
MOUNTED_DIRS_ARRAY=($MOUNTED_CIFS_DIRS)
for i in ${!MOUNTED_DIRS_ARRAY[@]}
do
umount -l ${MOUNTED_DIRS_ARRAY[ i ]}
done
}

status() {
echo "Mounted samba-cifs filesystems..."
mount -t cifs| cut -d\ -f3
}

restart() {
echo "restart ..."
start
}

reload() {
echo "start ..."
start
}

force_reload() {
echo "force-reload ..."
start
}

case $1 in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
restart
;;
reload)
reload
;;
force-reload)
force_reload
;;
*)
echo "Usage: mountcifs {start|stop|restart|reload|force-reload|status}"
;;
esac

exit 0


Nachtrag: Eine andere Methode, die funktioniert und ohne extra Skript auskommt, ist bei ubuntuusers.de beschrieben. Dazu einfach folgendes auf der Shell ausführen:

cd /etc/rc0.d
sudo mv S31umountnfs.sh K15umountnfs.sh
cd /etc/rc6.d
sudo mv S31umountnfs.sh K15umountnfs.sh

USB-Problem mit Ubuntu Gutsy und VirtualBox

16.11.2007 | Linux | 0 Kommentare
(K)Ubuntu Gutsy im Zusammenspiel mit VirtualBox bringt leider einen Fehler bei der Initialisierung der USB-Schnittstelle. Es kommt folgende Fehlermeldung in VirtualBox, sobald man versucht, eine virtuelle Maschine zu starten oder die Einstellungen zu ändern:

Could not load the Host USB Proxy Service (VERR_FILE_NOT_FOUND). The service might be not installed on the host computer.

Result Code: 0x80004005 Component: Host Interface: IHost {81729c26-1aec-46f5-b7c0-cc7364738fdb} Callee: IMachine {31f7169f-14da-4c55-8cb6-a3665186e35e}

Allerdings gibt es hierzu Abhilfe (siehe http://www.virtualbox.org/ticket/747):
Man bearbeitet einfach die Datei /etc/init.d/mountdevsubfs.sh mit Root-Rechten (z.B. mit sudo mcedit /etc/init.d/mountdevsubfs.sh, wenn man das Paket mc installiert hat, ansonsten gehen auch andere Editoren, z.B. vim oder nano) und entfernt das Kommentarzeichen bei den entsprechenden Zeilen, so dass dies dann so aussieht:

#
# Magic to make /proc/bus/usb work
#
mkdir -p /dev/bus/usb/.usbfs
domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
ln -s .usbfs/devices /dev/bus/usb/devices
mount --rbind /dev/bus/usb /proc/bus/usb

Dann einfach ein

sudo /etc/init.d/mountdevsubfs.sh start

starten und alles funktioniert in VirtualBox!

Neue Schriftarten von Red Hat

01.11.2007 | Fundstücke | 0 Kommentare
Auf ubuntu-tutorials.com bin ich auf Schriftarten von Red Hat aufmerksam geworden, die man ohne Probleme installieren kann. Unter Kubuntu gefällt mir die Standardschriftart zwar besser, aber "Liberation Mono" ist sehr empfehlenswert für Kate und Konsolen. Die Fonts gibts bei Red Hat zum Download.

Nachtrag (28.07.2008):
Unter Debian/Ubuntu reicht es nun auch aus, das Paket ttf-liberation zu installieren, das genau diese Schriftarten an Bord hat.

$ aptitude show ttf-liberation
Paket: ttf-liberation
[...]
Beschreibung: Free fonts with the same metrics as Times, Arial and Courier.
A set of serif, sans-serif and monospaced fonts from Red Hat with exactly the same metrics as the (non-free) Microsoft Times, Arial and Courier fonts, which implies those fonts can serve as a drop-in replacement. The font family is named Liberation.
Homepage: https://www.redhat.com/promo/fonts/