Eu fiz algumas pesquisas.
- Os cookies são armazenados no arquivo
cookies.sqlite
no diretório do perfil do firefox.
- O arquivo é um banco de dados sqlite.
- O registro de data e hora do último acesso é armazenado no
lastAccessed
coluna na tabela moz_cookies
.
- O formato de
lastAccessed
é um pouco do formato PRTime
, que é basicamente o tempo da época do unix com microssegundos.
A consulta a seguir listará todos os cookies que não foram acessados nos últimos 14 dias.
select host, name from moz_cookies
where lastaccessed < strftime('%s000000', 'now', '-14 days')
order by lastaccessed;
Acabei de aprender um pouco de SQL para isso, então pode muito bem ser que essa consulta possa ser feita melhor.
A consulta a seguir excluirá todos esses cookies.
delete from moz_cookies
where lastaccessed < strftime('%s000000', 'now', '-14 days');
Aqui está um script de shell rápido e sujo que faz o trabalho. Você precisará do comando sqlite3
instalado em seu sistema.
#!/bin/sh
DAYS="14"
SELECT="select host, name"
DELETE="delete"
FROM="from moz_cookies"
OBSOLETE="strftime('%s000000', 'now', '-$DAYS days')"
WHERE="where lastaccessed < $OBSOLETE"
ORDER="order by lastaccessed"
SELECTQUERY="$SELECT $FROM $WHERE $ORDER;"
DELETEQUERY="$DELETE $FROM $WHERE;"
printf '%s\n' "$SELECTQUERY" | sqlite3 cookies.sqlite