Mozilla Thunderbird

Идеята е идентична както в поста ми Firefox databasisse VAKUUM en HERINDEKS. От известно време Debian разкараха ребрадинраните версии на Mozilla продуктите. При миграцията от Icedowe към Thunderbird се замислих, че не съм си дефрагментирал базата, а досега през email клиента ми са изтекли сериозно количество писма, email акаунти и сървъри, потребители и пароли. Скрипта е идентичен с този от предишният ми пост само с лека модификация за къде да търси файловете 🙂

Linux версията

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 os версията

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

За разлика от профилната папката на Firefox тази на Thunderbird е с доста по правилен път (без space) и не се налага да се прави промяна на delimiter.

'N slim truuk om jou blaaier se spoed te verbeter, is deur vaqing sy sqlite-databasis. Vakuum proses herbou die databasis, en daardeur defragmenteer, verminder die grootte en maak sy vraag vinniger, skyfgebruik kan ook die las op jou skyf effektief verminder, aangesien dit in 'n volgorde van my sektore lees. Oor die algemeen is dit van toepassing op enige databasis wat nie outomaties vakuum/Defrag op sigself uitvoer nie.

Die Firefox databasis defragmentasieproses self is redelik nietig – Vervul sqlite3 DB-lêer VAKUUM in die Firefox-profielgids. In die Linux pad na dit is gewoonlik ~/.Mozilla/Firefox/random-name.default. In die algemeen, moet jy net 1 dirketoria in. Mozilla/Firefox as jy meer kan jy kyk ~/.Mozilla/Firefox/profiles.ini vir die korrekte gids in is die profiel van jou browser. Aangesien ek nie gepla is om die proses met die hand uit te voer nie, het ek 'n eenvoudige Script geskryf om die databasisse te defragmenteer.:

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

Na die uitvoer van die Script, die soektog in die geskiedenis en die Fox laai self is sensitief vinniger. Die Script ek raai met klein veranderinge kan ook gebruik word in Mac OS.

p. s hier is die opsie vir Mac OS X – getoets op Mac OS X Sierra. Ons moet die delimiter dwing om 'n nuwe orde te wees as gevolg van ruimte in die pad na die gids wat die Firefox profiel bevat

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

Сертифицирането в ipv6.he.net имат дневни тестове които дават по 1 допълнителна точка след като си минал всички основни тестове. Трябва да се направят 100 такива теста за максимален резултат 😐 . Тестовете сами по себе си са напълно тривиални

  • Traceroute
  • DIG AAAA
  • DIG PTR
  • Ping
  • Whois

Най неприятното е че самите тестове трябва да са уникални т.е не може да използваш един домейн двапъти 🙂 Освен всичко друго са и малко досадни 🙄никакво предизвикателство просто плющиш 5 команди в cli-то и copy/paste на резултата в техният сайт.

Като мързелив и администратор който обича да си улеснява живота надрасках на бързо едно елементарно bash-че което да върши черната работа вместо мен

#!/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

Както се вижда скрипта е безумно елементарен. Подаваш домейн след което го валидира дали има IPv6 запис и ако има извършва дневните тестове за него. Най готината частфункцията hr която принтира линия по цялата ширина на екрана е взета от bash-hackers.

Едно от нещата който най много ме дразнят е когато в cli копирам/местя голяма директоря да нямам идея какъв процент от целият размер съм претъркалял. За съжаление cp/mv нямат подобни сили и се налага да прибегнем към алтернативни варианти. Има доста възможности но на мен лично най ми допада използването на rsync вместо pc/mv. В него има всичко вграденозапазване на правата над файлове и директории, прогрес бар както и възможност да изтрива копираните файлове.

В общи линии си направих 2 alias-а които вършат повече от чудна работа:

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

Търсенето в Linux на файлове като цяло си е доста лесно с командата find която разполага с вградени инструменти намирането на файлове по големи от определен размер например:

find / -type f -size +10M

По горният пример ще ни намери всички файлове по големи от определен размер което до някъде е приемливо но нас като цяло ни интересува целият път на файлът отделно че ако опитате по горният пример, ще получите доста съобщения за грешки заради проблеми с достъпа или файлове забранени за четене. В общи линии решаването на съответните 2 проблема става лесно с допълването на по горната команда по следният начин:

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