Für alle, die ihr Thunderbird-Profil per Shell-Script sichern möchten, habe ich da schon mal etwas vorbereitet:
#!/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 😉
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
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}
Ich hab das Script mal ein wenig überarbeitet
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
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.