Firefox und Thunderbird Beine machen

Viele kennen sicher das Problem, das Firefox und Thunderbird mit der Zeit immer länger zum Starten brauchen und auch während des Gebrauchs träger werden. Grund dafür sind die diversen SQLite Datenbanken, die sich mit der Zeit immer weiter aufblähen.

Dem Treiben kann man entweder durch spezielle Addons zu Leibe rücken oder folgendes Script einsetzen:

#!/bin/bash

OLDIFS=$IFS
IFS=$'\n'

# Variablen für die Profil-Verzeichnisse
FFDIR="${HOME}/.mozilla/firefox"
TBDIR="${HOME}/.thunderbird"

# Prüfung, ob Firefox oder Thunderbird noch ausgeführt werden
FFRUNNING=$(find "$FFDIR" -name lock)
TBRUNNING=$(find "$TBDIR" -name lock)

# Funktion, um zu prüfen, ob das Programm noch ausgeführt wird
function check_running {
  if [ -n "$1" ]
  then
    echo -e "\n${2} wird noch ausgeführt!\nBitte beenden Sie ${2}, ";
    echo "bevor Sie die Datenbanken komprimieren!\n";
    exit $3;
  fi
}

# Funktion zum Komprimieren der Datenbanken
function shrink_dbs {
  echo -e "\nKomprimiere ${1}-Datenbanken"
  FILES=$(find "${2}" -name *sqlite);

  for db in $FILES;
  do
    echo "VACUUM;" | sqlite3 $db ;
  done;

  echo -e "${1}-Datenbanken komprimiert\n"
}

# prüfen, ob FF und TB noch laufen
check_running "$FFRUNNING" "Firefox" -110
check_running "$TBRUNNING" "Thunderbird" -210

# Datenbanken komprimieren
shrink_dbs "Firefox" "$FFDIR"
shrink_dbs "Thunderbird" "$TBDIR"

IFS=$OLDIFS

Nachdem das Script durchgelaufen ist, sollten Firefox und Thunderbird ihre Aufgaben wieder etwas zügiger verrichten.

4 Antworten auf „Firefox und Thunderbird Beine machen“

  1. Danke für das Skript.
    Allerdings bekomme ich (sofern Euch das nicht ohnehin schon bekannt ist) sowohl beim Firefox als auch beim Thunderbird einen Fehler für die Dateien „cookies.sqlite“ (nur FF) und „places.sqlite“ (FF und TB):

    „Error: near line 1: file is encrypted or is not a database“

  2. vorposter:
    fehler habe ich auch, scheinbar sind’s keine sqlite-db’s …
    Tip: Ausgabe nach /dev/null

    [oberklugscheissmode on]
    zum script:
    das script soll die sqlite-db’s sinnvollerweise komprimieren, nur was macht folgende Zeile darin
    echo „bevor Sie das Backup starten!\n“;
    ???

    was machst du, wenn sqlite3 nicht installiert ist ?

    in meinem $HOME cleanup mache ich f. FF,FB,SB folgendes:

    if [ -e $(which sqlite3) ]; then
    if [ „$(ps -e|grep -cE ‚mozilla|thunderbird|sunbird‘)“ -eq 0 ]; then
    for i in $(find ${HOME}/.{mozilla,thunderbird} -name „*.sqlite“ -a -mtime +6 )
    do
    sqlite3 $i „vacuum“ ;
    done;
    fi;
    else
    echo -e „\n +++++ \t no sqlite3 installed !!! +++++\n „;
    fi;

    [oberklugscheissmode off]

    over and out !!!
    SP

  3. @sixpack: Naja, Errorhandling sieht bei mir ein wenig anders aus, als die Ausgabe eines Programms ins Nirvana zu jagen, aber naja. Wir wollen es ja nicht übertreiben 😉

  4. @sixpack: Okay, copy&paste sind pöhse 🙂

    Und was die Prüfung auf sqlite3 angeht: Da zumindest Firefox sqlite3 als Abhängigkeit hat, dürfte das Problem eigentlich nicht bestehen 😉

    Für andere Distributionen übernehme ich aber keine Gewähr 😎

Kommentare sind geschlossen.