Mozilla Thunderbird

La ideo estas identa al mia afiŝo Datumbazoj VACUUM kaj REINDEX de Firefox. De iom da tempo Debian perdis la rebranditajn versiojn de Mozilla-produktoj. Kiam mi migris de Icedowe al Thunderbird, mi pensis pri ĝi, ke mi ne defragmentis mian datumbazon, kaj ĝis nun serioza kvanto da leteroj filtris tra mia retpoŝta kliento, retpoŝtaj kontoj kaj serviloj, uzantoj kaj pasvortoj. La skripto identas al tiu de mia antaŭa afiŝo nur kun eta modifo pri kie serĉi la dosierojn 🙂

Linukso-versio

for db in $(find ~/.thunderbird/$(grep Path ~/.thunderbird/profiles.ini | cut -d'=' -f2) -maxdepth 1 -name "*.sqlite" -type f)
do
echo "VACUUM ${db}"
sqlite3 ${db} VACUUM
sqlite3 ${db} REINDEX
done

Mac-versio

for db in $(find ~/Library/Thunderbird/$(grep Path ~/Library/Thunderbird/profiles.ini | cut -d'=' -f2)  -maxdepth 1  -name "*.sqlite" -type f)
do
echo "VACUUM && REINDEX ${db}"
sqlite3 "${db}" VACUUM;
sqlite3 "${db}" REINDEX;
done

Malkiel la profil-dosierujo de Firefox, Thunderbird estas sufiĉe bona (sen spaco) kaj neniu ŝanĝo al la limigilo necesas.

Lerta lertaĵo por plibonigi la rapidon de via retumilo Firefox estas malplenigante sian sqlite-datumbazon. La VACUUM-procezo rekonstruas la datumbazon, tiel defragmentante ĝin, reduktas la grandecon kaj faciligas la serĉadon en ĝi, uzi diskon pli efike eble ankaŭ reduktos la ŝarĝon sur via disko, ĉar ĝi legas sinsekve de miaj sektoroj. Ĝenerale tio validas por iu ajn datumbazo, kiu ne aŭtomate plenumas vakuon / defragadon sur si mem.

La procezo de defragmentado de la Firefox-datumbazo mem estas sufiĉe bagatela – ni plenumas sqlite3 db-dosiero VACUUM en la dosierujo profilfajro. En linux, la vojo al gxi estas kutime ~ / .mozilla / firefox / random-name.default. Principe vi nur havu 1 dosierujo en .mozilla / firefox se vi havas pli da, vi povas kontroli ~ / .mozilla / firefox / profiles.ini por la ĝusta dosierujo en la profilo de via retumilo.. Ĉar mi ne zorgas fari la procezon mane, mi skribis elementan skripton por defragmenti la datumbazojn:

for db in $(find ~/.mozilla/firefox/$(grep Path ~/.mozilla/firefox/profiles.ini | cut -d'=' -f2) -maxdepth 1 -name "*.sqlite" -type f)
do
   echo "VACUUM ${db}"
   sqlite3 ${db} VACUUM
   sqlite3 ${db} REINDEX
done

Post la ekzekuto de la skripto, la serĉado en la historio kaj la ŝarĝo de la vulpo mem estas pli sentiva. Mi supozas, ke la skripto uzeblas en Mac OS kun malgrandaj modifoj.

p.s Jen la opcio por Mac OS X. – testita en Mac OS X Sierra. Ni devas devigi la limigilon esti nova linio pro la spaco en la vojo al la dosierujo, kiu enhavas la firefox-profilon

OIFS="$IFS"
IFS=$'\n'
for db in $(find ~/Library/Application\ Support/Firefox/$(grep Path ~/Library/Application\ Support/Firefox/profiles.ini | cut -d'=' -f2)  -maxdepth 1  -name "*.sqlite" -type f)
do
echo "VACUUM && REINDEX ${db}"
sqlite3 "${db}" VACUUM;
sqlite3 "${db}" REINDEX;
done

Atesto en ipv6.he.net havas ĉiutagajn provojn, kiuj daŭras 1 kroma punkto post pasigado de ĉiuj bazaj provoj. Ili devas esti faritaj 100 tiajn provojn por maksimuma poentaro 😐 . La testoj mem estas tute bagatelaj

  • Traceroute
  • VI AAAA
  • VI PTR
  • Ping
  • Kiu estas

Plej malagrabla estas, ke la provoj mem devas esti unikaj, tio estas ke vi ne povas uzi unu domajnon dufoje 🙂 Krom ĉio cetera, ili estas iom ĝenaj 🙄 – neniu defio nur frapado 5 komandoj en la kliŝon kaj kopii / alglui la rezulton sur ilia retejo.

Kiel mallaborema kaj administranto, kiu ŝatas plifaciligi sian vivon, mi rapide skrapis elementan bazon, kiu faras la malpuran laboron por mi.

#!/bin/bash

hr() {
  local start=$'\e(0' end=$'\e(B' line='qqqqqqqqqqqqqqqq'
  local cols=${COLUMNS:-$(tput cols)}
  while ((${#line} < cols)); do line+="$line"; done
  printf '%s%s%s\n' "$start" "${line:0:cols}" "$end"
}

if [ -z $1 ]
then
  echo "Append domain afert the script name!!!"
  exit
fi

IP=$(dig $1 AAAA +short)

if [ -z ${IP} ]
then
  echo "$1 dont have valid IPv6 record"
else
  reset
  traceroute6 $1
  hr
  dig $1 AAAA
  hr
  dig -x ${IP}
  hr
  ping6 -c3 ${IP}
  hr 
  whois ${IP}
fi

Kiel vi povas vidi, la skripto estas malsane simpla. Vi sendas domajnon kaj tiam validigas ĝin por vidi ĉu ekzistas IPv6-rekordo kaj se jes, plenumas ĉiutagajn provojn por ĝi. La plej malvarmeta parto – funkcio h kiu presas linion tra la tuta larĝo de la ekrano bash-hackers.

Unu el la aferoj, kiuj plej multe koleras min, estas kiam mi kopias / movas bonegan direktoron en cli mi ne havas ideon pri kia procento de la totala grandeco mi ruliĝis. Bedaŭrinde, cp / mv ne havas tiajn fortojn kaj ni devas recurri al alternativoj. Estas multaj eblecoj, sed mi persone ŝatas la uzon de rsync anstataŭ pc / mv. Ĝi havas ĉion enkonstruitan – konservi rajtojn super dosieroj kaj dosierujoj, progreso stango tiel kiel la ebleco forigi kopiitajn dosierojn.

Ĝenerale mi faris 2 alias, kiuj faras pli ol mirindan laboron:

alias cpi='rsync -a --info=progress2'
alias mvi='rsync -a --info=progress2 --remove-source-files'

Serĉi dosierojn en Linukso ĝenerale estas sufiĉe facila per la trova komando, kiu havas enkonstruitajn ilojn por trovi dosierojn pli grandajn ol certa grandeco, ekzemple:

find / -type f -size +10M

En la supra ekzemplo ni trovos ĉiujn dosierojn pli grandajn ol certa grandeco, kio estas iom akceptebla, sed ni ĝenerale interesas la tutan vojon de la dosiero aparte, ke se vi provas la ĉi-supran ekzemplon, vi ricevos multajn erarajn mesaĝojn pro problemoj de aliro aŭ dosieroj malpermesitaj legi. Ĝenerale, la solvo de la koncernata 2 la problemo estas facile farita plenumante la ĉi-supran ordonon jene:

find / -type f -size +10M -exec ls -lh {} \; 2> /dev/null | awk '{ print $NF ": " $5 }'