Rsnapshot mit externer Festplatte

Rsnapshot scheint für Backups auf Servern gedacht zu sein. Jedenfalls bekommt man ein paar Probleme, wenn der Rechner nicht immer läuft oder gar die Festplatte nicht immer eingeschaltet ist, während es versucht, seine Arbeit zu verrichten. Wenn man z.B. mehrere Cronjobs eingerichtet hat, die täglich, wöchentlich und monatlich Snapshots machen, den Rechner aber beim monatlichen Backup einmal nicht an hat, fällt das monatliche Backup komplett aus.
Dieses Problem lässt sich mit anacron lösen. Anacron führt Jobs eine gewisse Zeit nach dem Systemstart aus.

Allerdings gibt es noch ein weiteres Problem, wenn man seine Backups auf einer externen Festplatte speichern möchte: ist die Festplatte ausgeschaltet, startet Anacron den Job und sieht ihn als ausgeführt an, Rsnapshot macht allerdings nichts (weil man in der config no_create_root aktiviert hat). Das führt im schlimmsten Fall wieder dazu, dass das monatliche Backup ausfällt.

Um das zu verhindern hatte ich ursprünglich für jeden Backup-Job noch einen Warn-Job erstellt, der mir 5min vor dem Backup eine Warnung einblendet, dass ich die Festplatte einschalten sollte. Allerdings passiert es durchaus öfter mal, dass ich genau während dieser 5min nicht auf den Bildschirm gucke. Deshalb habe ich das Problem jetzt richtig™ gelöst und ein kleines Script geschrieben, welches die jeweiligen Snapshots ausführt, wenn der letzte erfolgreiche(!) Snapshot schon mehr als einen Tag, eine Woche oder einen Monat zurück liegt.

Das Skript ist hier auf Github zu finden: https://github.com/Scumpeter/rscron/blob/master/rscron.sh

Wenn das Script als /opt/rscron.sh gespeichert wird (und natürlich executable ist), kann man folgendes in /etc/anacron.conf eintragen:

1    45    rsnapshot.daily    /opt/rscron.sh

Das führt dazu, dass das Skript 45min nach dem Start des Systems (und spätestens täglich) ausgeführt wird.

Es wird vorausgesetzt, dass rsnapshot,  sudo und notify-send installiert und eingerichtet sind. Und dass man einen libnotify-kompatiblen Notification-Daemon auf seinem Desktop laufen hat (KDE, Gnome und XFCE haben so etwas eingebaut).

Firefox unter KDE und verwaiste Configs

Ich bin neulich von Chromium auf Firefox (zurück) umgestiegen. Jetzt habe ich festgestellt, dass Firefox immer Thunar als Dateimanager öffnet, obwohl an allen erdenklichen Stellen im System der KDE-Standard-Filemanager Dolphin eingestellt ist.

Thunar ist der Standard-Filemanager von XFCE, den ich nicht deinstallieren möchte, weil er den besten File-Renamer beinhaltet, den man sich wünschen kann.

Ich habe lange rumgeforscht und eine ganze Menge Lösungsansätze gefunden:

  • /home/BENUTZERNAME/.mozilla/firefox/PROFILNAME/mimeTypes.rdf löschen oder verschieben
  • Standard-Filemanager von KDE umstellen
  • Firefox mit „export DE=kde && firefox“ starten
  • Komische Voodoo-Dinge in .desktop-Dateien in /usr/share/applications/ eintragen
  • inode/directory=IRGENDWAS“ auf „inode/directory=kde4-dolphin.desktop;“ ändern in
    • ~/.local/share/applications/defaults.list
    • ~/.local/share/applications/mimeapps.list
    • ~/.local/share/applications/mimeinfo.cache
    • /usr/share/applications/defaults.list
    • /usr/share/applications/mimeapps.list
    • /usr/share/applications/mimeinfo.cache
  • Voodoo mit den gconf-editor
  • Standard-Filemanager in den Gnome- oder XFCE-Einstellungen bzw. bei den Ordnereigenschaften von Nautilus ändern.

Das alles sind Dinge, von denen Leute in diversen Foren und Bugtrackern behauptet haben, dass sie genau dieses Problem für sie gelöst hätte. Bis auf den letzten Punkt habe ich auch alles (erfolglos) ausprobiert.

Dieser letzte Punkt hat mich allerdings auf eine recht abwegige Idee gebracht: Ich hatte ja irgendwann einmal XFCE auf diesem Rechner installiert. Die Config-Files davon waren auch noch in meinem Home-Verzeichnis. Da ich die nicht mehr brauchte, habe ich einfach mal probiert, sie zu löschen:

rm -r ~/.config/xfce4

Und voilà, Firefox benimmt sich wieder.

Zum Abschluss ein kurzer Rant.

Nicht nur, dass ich 6(!) Stellen gefunden habe an denen Firefox (zumindest Gerüchten zu Folge) guckt, welche Anwendungen er benutzen soll, er hält sich auch noch lieber an die Einstellungen von einem DE, das gar nicht mehr installiert ist, als an die von dem welches gerade läuft?! Dazu kommt, dass offenbar niemand so recht weiß, wo Firefox überall sucht und welche Quellen dabei was für eine Priorität haben.

Dabei wäre doch alles so einfach, wenn die Leute Konventionen befolgen würden. xdg-open hat Dolphin geöffnet, aber Firefox benutzt lieber gnome-open (warum gibt es das überhaupt?!) und das benutzt dann die verwaisten Einstellungen von XFCE… ich habe gar nicht so viele Hände, wie ich mir vor den Kopf schlagen möchte.

sudo & Pipes

Wenn man einen Befehl mit sudo durch eine Pipe leiten möchte, wie z.B.:

sudo echo "xscreensaver-command -lock" > usr/lib/kde4/libexec/kscreenlocker

besteht das Problem, dass nur der Teil vor dem > mit root-Rechten ausgeführt wird und nicht der ganze Befehl.
Nach kurzem Googlen habe ich auf dieser Seite folgende Lösung gefunden:
Statt sudo BEFEHL  gibt man sudo bash -c 'BEFEHL' ein. Das führt dazu, dass sudo eine Bash mit root-Rechten ausführt, die dann den eigentlichen Befehl ausführt.
Also für mein Beispiel:

sudo bash -c 'echo "xscreensaver-command -lock" > /usr/lib/kde4/libexec/kscreenlocker'

(Dieser Befehl sorgt übrigens dafür, dass man in KDE seinen Bildschirm mit xscreensaver statt mit kscreensaver sperren kann.)

Ordner von Androids Musikbibliothek ausschließen

Wer einzelne Ordner aus seiner Musikbibliothek ausschließen will (z.B. weil sie Audiobooks, Podcasts oder Klingeltöne enthalten) und dazu nicht auf alternative Mediaplayer (wie z.B. den Dateisystembasierten MortPlayer) zurückgreifen möchte kann das wie folgt tun:

  1. Installiere einen Dateimanager. (Ich empfehle File Expert.)
  2. Gehe damit in den Ordner der nicht in der Musikbibliothek erscheinen soll.
  3. Erstelle eine leere Datei mit dem Namen .nomedia (den Punkt am Anfang nicht vergessen!).
  4. Wiederhole die Schritte 2 & 3 für alle Ordner die ausgeschlossen werden sollen.
  5. Warte bis die Änderungen übernommen werden. (Evtl lässt sich das mit einem Neustart des Telefons beschleunigen.)

Das sollte es gewesen sein.

Ich dachte eigentlich, wir wären aus den Zeiten raus, in denen man für so grundlegende Einstellungen googlen muss. Aber Android ist ja immer wieder für eine Überraschung gut ;)

 
Nachtrag (26.9.2012): Es ist übrigens (scheinbar) nicht möglich nur einzelne Arten von Medien (z.b. nur Musik oder nur Bilder) auszuschließen. D.h. wenn man Albumart-Dateien in seinen Musikordnern hat, bringt das ganze recht wenig.
Allerdings kann man diese Bilddateien (offenbar) einfach löschen, nachdem Android die Cover in seine Datenbank übernommen hat.  Im Player werden die Cover dann trotzdem weiterhin angezeigt.

Probleme mit Evolution und Dovecot

Ich habe grade festgestellt, dass Evolution auf meinem Notebook seit dem Update auf Ubuntu 11.04 („The Natty Narwhal„) Probleme mit dem Auffrischen der IMAP-Ordner auf meinem Mail-Server hat. Um das Problem zu lösen brauchte ich erst einmal ein paar Informationen. Während mir die Fehlermeldung von Evolution nur verraten konnte, dass es eben nicht geht, war der Log des Servers schon hilfreicher:

Panic: file mail-index-transaction.c: line 637 (mail_index_transaction_lookup): assertion failed: (seq >= t->first_new_seq && seq <= t->last_new_seq)


Diese Fehlermeldung konnte ich im Web suchen und bin so zu der Mailingliste von Dovecot und darüber zu dem entsprechenden Bugreport gekommen.

Der Bug wurde also in Dovecot offenbar in Version 1.2.14 behoben. Für meinen Server gibt es allerdings leider kein so aktuelles Paket. Und bis ich Zeit habe, ein Distributions-Update zu machen, möchte ich trotzdem Mails mit Evolution abholen können. Also muss ich mir den Fehler etwas genauer angucken und sehen, ob ich einen Workaround finde. Schließlich lief mit Maverick noch alles bestens.

Das Problem ist laut Bugreport ein neues Feature in Evolution, das in Dovecot scheinbar Fehlerhaft implementiert ist: QRESYNC. Dieses Feature soll also dafür sorgen, dass die Ordner schneller zwischen Client und Server synchronisiert werden können. Dann gucken wir doch einfach mal, ob wir eine Option finden, das abzuschalten…

Et voilá: In den „Empfangsoptionen“ der IMAP-Konten-Einstellungen von Evolution findet sich eine Option:

„Schnelles Abgleichen“ verwenden, falls der Server es unterstüzt

Seitdem ich diese Option deaktiviert habe funktioniert wieder alles bestens.