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.
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“
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
@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 😉
@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 😎