Firefox sqlite vacuum gyorsan

http://pastebin.com/f58ccfd4c
ksh kell hozza (de az ugy is alap :p)

Hozzászólások

> ksh kell hozza (de az ugy is alap :p)

Biztos sokakat hoz lazba... ;-)

Te nem kapsz 'SQL error near line 1: database is locked' hibakat?
(cookies es places eseteben)

Amugy jo az a pastebin, foleg hogy 1 honapra allitottad be a lejaratot. ;-)

Nna, akkor a hianyzo magyarazat a dummyknak:

A firefox alatti sqlite3 meghalalja az adatbazis-tablak idonkenti optimalizalasat, ujraindexeleset.

Ezt lehetoleg akkor kell lefuttatni, mikor a Firefox *nem* fut, praktikusan az inditas elott. Erre persze be lehet epiteni a scriptbe is egy tesztet, bar ha nehany file lockolva van, attol meg a script lefut - a 'SQL error near line 1: database is locked' hibak kisereteben.

Erre az alabbi parancs is megfelel (itt csak a 'default' profile-ra), Unixon:


for i in ~/.mozilla/firefox/*.default/*.sqlite; do sqlite3 $i vacuum; done

>> for i in ~/.mozilla/firefox/*.default/*.sqlite; do sqlite3 $i vacuum; done
> es az en scriptem ennek a parhuzmositott valtozata, ami igy gyorsabban vegez

Legyen neked párhuzamosított, Bourne-shellben:

pids=""
for i in ~/.mozilla/firefox/*.default/*.sqlite; do
sqlite3 $i vacuum &
pids="$pids $!"
done
for i in $pids ; do # kivetelesen tilos a "$pids" - forma
wait $i
done

Tudom, hogy öngól, amiért a megjegyzésem hatására nem fognak majd ksh-t telepíteni (és megtudni, hogy mi a jó), de ha:

a) a 6. sort kikommentezed
b) a 11. sorbeli print-et echo -ra cseréled

akkor minden mai (POSIX-szabvány szerint működő) shellel működik a dolog. (Akár még originál Bourne-shell-re is át lehetne írni nagyon csekély erőfeszítéssel, bár a tömbváltozók kezelése sokkal egyszerűbb, mint a háttérprocesszek pid-jét mondjuk egy szóközökkel elválasztott listában tárolni, majd azt egy for ciklussal feldolgozni.

Azért köszi :-) (kár, hogy engem FF-nélkül kevéssé izgat.)