Como posso remover o histórico antigo do Google Chrome?

19

Eu estou trabalhando em um laptop com um disco rígido modesto, e 500MB é ocupado com o Google Chrome "History Index" e arquivos "Thumbnails". Alguns desses arquivos têm um ano de idade. O Chrome oferece a opção de remover recente história, mas eu quero o oposto: eu quero remover velho história. (O ideal seria remover as informações de histórico menos usadas recentemente, mas não espero poder fazer isso.)

Alguém tem alguma ideia? Estou executando o Debian padrão google-chrome-beta pacote.

Norman Ramsey
fonte
O Chrome agora tem suporte para limpar histórico, cookies e outros dados, então essa pergunta não é mais relevante.
nhinkle
2
@nhinkle: por favor, cite o número da versão ou a página da documentação do google. chrome teve "suporte" por algum tempo, mas o suporte a partir do cromo 11 (versão estável atual) permite apenas excluir recente história, não velho história
Norman Ramsey
isso é justo; Eu reabrei a questão. Minhas desculpas por não entendê-lo corretamente.
nhinkle
@NormanRamsey, Chrome automaticamente remova o histórico com mais de 90 dias. É isso que você queria?
Pacerier

Respostas:

13

Vergonhoso para o Google, há de jeito nenhum .

Além disso, todos os bancos de dados do Chrome são apenas arquivos sqlite3, e você pode usar o sqlite3 para limpar entradas desnecessárias. Primeiro, instale o sqlite3 cliente ( sudo apt-get install sqlite3 ) e, em seguida, vá para a configuração do Chrome (deve ser .config/chrome/Default ).

Aqui está um snippet SQL que elimina URLs antigas do histórico (funciona em bancos de dados History, Archived History ):

delete from urls where last_visit_time <= (strftime('%s',(select 
   max(last_visit_time)/10000000 from urls),'unixepoch','-1 days')*10000000);

Aqui está outro que provavelmente funcionará Thumbnails base de dados:

attach database 'History' as history;
delete from thumbnails where last_updated <= (strftime('%s',(select 
   max(last_visit_time)/10000000 from history.urls),'unixepoch','-1 days')
   *10000000);

Isso provavelmente funcionará History Index -es:

attach database 'History' as history;
delete from info i, pages_content pc where i.time <= (strftime('%s',(select
   max(last_visit_time)/10000000 from history.urls),'unixepoch','-1 days')*
   10000000) and i.rowid = pc.rowid;

É claro que você deve fazer backup de todos os bancos de dados, porque você pode ter uma versão diferente do Chrome, ou eu acidentalmente perder um símbolo, etc.

Como o Chrome armazena seus tempos em algum formato estranho baseado na Epoch do UNIX (mas multiplicado por 10 ^ 7 e deslocado para o futuro), as funções do sistema que retornam a data não podem ser usadas; a data da última abertura da página é usada no lugar.

Você pode substituir -1 days com qualquer intervalo que você quiser; você pode ler sobre modificadores permitidos em Documentação SQLite (Em breve: -N days, -N months ).

Depois de remover os dados desnecessários, você pode querer emitir vacuum; comando que reduz o banco de dados ainda mais.

whitequark
fonte
2
Obrigado pela resposta detalhada. Eu sabia que deveria ter prestado mais atenção na aula de banco de dados.
Norman Ramsey
@whitequark, O que você quer dizer com "mudou para o futuro"?
Pacerier
3

(Isso não é uma resposta, mas estou deixando isso como um aviso.)

Eu vi duas extensões que afirmam fazer isso de alguma forma, mas não funciona.

No entanto, essas (e espero outras extensões) só chamam chrome.history.deleteRange - Se você tiver sorte, com parâmetros razoáveis. De acordo com a documentação:

Remove todos os itens dentro do intervalo de datas especificado do histórico. As páginas não serão removidas do histórico, a menos que todas as visitas estejam dentro do intervalo.

E, na prática, não vejo nenhum efeito, além de (eu acho) páginas que não aparecem na página de histórico. Em particular, o arquivo do banco de dados do histórico ainda é grande, e o Chrome ainda faz muito IO. Então eu suspeito (de muito observação casual com o Chromium 9 beta r68937) que chrome.history.deleteRange afeta apenas o que é visível no chrome://history página e não o que está armazenado no disco e afeta coisas como a conclusão da barra de URL.

Gilles
fonte
Ambas são más notícias. O limitador de histórico remove todos os seus últimos 7 dias, assim, no momento em que você o instala, você perde. E Click2Clear History é um desastre de usabilidade, sem mencionar que o "período personalizado" na captura de tela parece não funcionar. Evite essas duas extensões, especialmente o Limitador de histórico, que remove irreversivelmente o acesso ao seu histórico. E isso não remove os malditos dados, quer !!!!
Norman Ramsey
O que você quer dizer com a última linha, "isso também não remove os malditos dados"? Eu quero me livrar dos grandes arquivos do History Index no meu disco, isso será feito?
Neil
Limitador de história foi fixado para não se comportar como Norman apontou. Além disso, existe um fork do limitador History que parece atualizado e melhor: chrome.google.com/webstore/detail/history-limiter-custom/…
bdombro