User Tools

Site Tools


linux:bash:compact-firefox-db-on-linux-and-speed-up

Compact Firefox DB on Linux and speed up opening

Mozilla Firefox uses sqlite3 DBs to store it's stuff. These DBs get fragmented because of adding and deleting rows. That's why I made this simple script to cope with the problem.

compact-ff.sh
#!/bin/bash
#
# compact-ff.sh v. 1.0.0 
# Compacts all Firefox DBs
# 
# http://www.riksoft.it
# LGPL licence
#
# Syntax: ./compact-ff.sh
 
# Requires sqlite3 v.10
# If you see errors like "encrypted or malformed DB..." it means you have to get
# a newer version of sqlite to be compatible with your Firefox version.
 
 
sqlitebin='/opt/lampp/bin/sqlite3-v10'; #path to your sqlite3 binary
tot_word='total'; #important for grep: use that of your language. en="total" it="totale"
 
 
read -p "Close any instance of Firefox and press any key."
 
bef=$(find ~/.mozilla -type f -name \*.sqlite -exec du -ch {} + | grep "$tot_word"$)
find ~/.mozilla -type f -name \*.sqlite -exec $sqlitebin {} "VACUUM" \;
find ~/.mozilla -type f -name \*.sqlite -exec $sqlitebin {} "REINDEX" \;
aft=$(find ~/.mozilla -type f -name \*.sqlite -exec du -ch {} + | grep "$tot_word"$)
 
echo "Before: "$bef, "After: $aft"
read -p "Press any key to close."

The variable tot_word must contain the exact word the command du uses on your system to show the total. If your system is not english, use this command

du -chs

to check which word your system uses instead of the english “total”.

linux/bash/compact-firefox-db-on-linux-and-speed-up.txt · Last modified: 2016/01/20 15:43 by rik