Thunderbird-Profil per Shell-Script sichern

Für alle, die ihr Thunderbird-Profil per Shell-Script sichern möchten, habe ich da schon mal etwas vorbereitet: :mrgreen:

#!/bin/bash

FILENAME="backup_thunderbird_"$(date +"%Y%m%d").tar.gz
LOGFILE="backup_thunderbird_"$(date +"%Y%m%d").log
BACKUPDIR="/home/"$(whoami)"/Dokumente/Privat"
TBDIR="/home/"$(whoami)"/.thunderbird"

# prüfen, ob das angegebene Profil-Verzeichnis existiert
if [ ! -d $TBDIR ]
then
  echo "Das Thunderbird-Profil-Verzeichnis ist ungültig!";
  exit -1;
else
  # prüfen, ob Thunderbird noch ausgeführt wird
  RUNNING=$(find "$TBDIR" -name lock)
fi

if [ -n "$RUNNING" ]
then
  echo "Thunderbird wird noch ausgeführt!";
  echo "Bitte beenden Sie Thunderbird, bevor Sie das Backup starten!";
  exit -1;
fi

# Backup erstellen
echo "erstelle Backup"
tar zcvf $BACKUPDIR/$FILENAME $TBDIR > $BACKUPDIR/$LOGFILE

echo "Backup erstellt"

Das Script ist eigentlich selbsterklärend. Falls es dennoch fragen gibt, einfach in den Kommentaren posten 😉

5 Antworten auf „Thunderbird-Profil per Shell-Script sichern“

  1. hallo

    [klugscheissMode an]

    # prüfen, ob die Logdatei existiert
    if [ -e $BACKUPDIR/$LOGFILE ]
    then
    # Logdatei löschen
    rm -f $BACKUPDIR/$LOGFILE;
    fi

    # neue Logdatei erstellen
    touch $BACKUPDIR/$LOGFILE

    # prüfen, ob heute schon ein Backup erstellt wurde
    if [ -e $BACKUPDIR/$FILENAME ]
    then
    echo „vorhandes Backup von heute wird gelöscht“;
    rm -f $BACKUPDIR/$FILENAME;
    fi

    wenn ich’s richtig verstehe, ist das obige komplett ueberfluessig ?!, wenn du in der Zeile
    tar …. das „>>“ durch „>“ ersetzt

    denn das neue log-file wuerde das alte ueberschreiben, daher touch … ueberfluessig !

    da du in „backup_thunderbird_“$(date +“%Y%m%d“)“ mit explizitem date arbeitest, existiert dies nur einmal (!) fuer einen bestimmten Tag.
    damit kannst du „rm -f $BACKUPDIR/$FILENAME“ auch entsorgen !

    dieses backup wird stets nur (!) einmal fuer den bestimmten Tag angelegt bzw. bei Existenz eben ueberschrieben, was das selbe Ergebnis hat.

    sinnvoller waere eher ob $TBDIR stets(!) was sinnvolles ergibt, z.b. .thunderbird gerade nicht (mehr) existiert.

    [klugscheissMode aus]

    SP

  2. noch’n schlauen Tip:
    sowas:
    if [ -e $BACKUPDIR/$LOGFILE ]
    then
    # Logdatei löschen
    rm -f $BACKUPDIR/$LOGFILE;
    fi

    laesst sich kurz in
    [ -e $BACKUPDIR/$LOGFILE ] && rm -f $BACKUPDIR/$LOGFILE;
    schreiben und spart Schreibarbeit.

    rm laeuft nur bei „TRUE“ fuer „[ -e …]“

    und
    $BACKUPDIR besser so ${BACKUPDIR}

  3. du schreibst zu viel !!!
    😉

    – ‚wuerde /home/“$(whoami)“ durch ${HOME} ersetzen
    Stichwort Wartbarkeit !

    – ‚ wuerde echo „Das Thunderbird-Profil-Verzeichnis ist ungültig!“;
    durch echo -e „\n ${TBDIR} ist ungültig! \n\n“; ersetzen
    bes. die hinteren „\n\n“ sorgen dafuer dass der Fehlertext frei steht und nicht der Prompt direkt an der Fehlermeldung dran klebt.

    – ‚wuede die Abfrage, ob TB gerade laeuft eleganter loesen, indem ich ueber
    pgrep/pkill TB cancel und vlt. danach wieder starte.
    das waere user-freundlicher, weil der will ja ein backup machen und nicht mit Fehlermeldungen behelligt werden.
    Stichwort: Usability, bes. wenn das script mal automatisch (cron) laufen soll

    – nun gut; viele Wege fuehren nach Rom …-

    Lesestoff:
    SHELL PROGRAMMIERUNG von Ronald Schaten

    SP

  4. Also davon, Thunderbird einfach zu beenden, wenn das Backup-Skript ausgeführt wird, halte ich ehrlich gesagt gar nichts. Du würdest es doch sicherlich auch nicht toll finden, wenn Dir ein Script einfach Thunderbird beendet, während Du ne wichtige Mail schreibst 😉

    BTW: Ich hab das Script zwischenzeitlich zu einem Backup für Thunderbird und/oder Firefox ausgebaut. Das Ergebnis poste ich demnächst hier im Blog.

Kommentare sind geschlossen.