Mozilla Thunderbird

Идеята е идентична както в поста ми Firefox databases VACUUM and REINDEX. От известно време 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.

Един хитър трик за подобряване на скоростта на firefox браузъра ви е като вакумирате sqlite базата му данни. VACUUM процеса преизгражда базата данни като по този начин я дефрагментира, намаля размера и прави търсенето в нея по бързо, използването на диска по ефективно евентуално намаля и натоварването върху диска ви тъй като чете в последователност от секторите ми. Като цяло това важи за всяка база данни която не извършва автоматично vacuum/defrag на себе си.

Самият процес по дефрагментиране на базата данни на Firefox е доста тривиален – изпълняваме sqlite3 db-file VACUUM в профилната директория на firefox. В linux пътя до нея обикновенно е ~/.mozilla/firefox/random-name.default. По принцип трябва да имате само 1 диркетория в .mozilla/firefox ако имате повече може да проверите ~/.mozilla/firefox/profiles.ini за коректната директория в е профила на вашият браузър. Тъй като не ми се занимава да извършвам процеса на ръка разписах елементарен скрипт с който да дефрагментирам базите данни:

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

След изпълняване на скрипта търсенето в history-то и самото зареждане на лисика е чувствително по бързо. Скрипта предполагам че с малки модификации може да се ползва и в Mac OS.

p.s Ето варианта и за Mac OS X – тестван на Mac OS X Sierra. Налага се да форсираме делимитъра да е нов ред заради space в пътя до папката в която се съдържа профила на firefox

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'

Тъй като от netenberg изобщо не оправдаха очакванията ми за fantastico 3 та реших да го разкарам тоталка. Въпреки кореспонденцията която водихме преди много време и насоките които им дадох за подобряване на продукта им до конкурентно способно ниво на softaculous и installatron се стигна до момента в който трябваше да бъде деинсталиран техният плъгин от Cpanel сървърите ми. Тъй като няма инструкции как се премахва това недоразумения вдигнах тикет на support-а те ми дадоха следните инструкции.

rm -rf /var/netenberg/fantastico_de_luxe/
rm -rf /usr/local/cpanel/whostmgr/docroot/cgi/fantastico/
rm -rf /usr/local/cpanel/3rdparty/fantastico*
rm -rf /usr/local/cpanel/base/frontend/*/fantastico
rm -f /usr/local/cpanel/base/frontend/x/cells/fantastico.html
rm -f /usr/local/cpanel/whostmgr/docroot/cgi/addon_fantastico.cgi

Изпълних си командите за чистиха се файловете им като осъзнах нещо важно пичовете изобщо не споменаха как се де регистрира плъгина им от контролният панел 🙄  😆 Мдаа педераски номер но се случва то и аз трябваше да гледам повече. Също така имаше останала една камара техни файлове явно се надяват да се върна като техен клиент, тъй като имали най много скриптове за инсталация както каза съпорт (не думай това е най важното направо) :mrgreen: . Та нека да продължим с пълното изкормване:

Това е най важната стъпка която трябва да се направи преди да затриете всичко останало тъй като после ще се окажете бе плъгин но с икона в контролния панел тъй като все е още е регистриран.

/usr/local/cpanel/bin/unregister_cpanelplugin /var/netenberg/fantastico_f3/fantastico_f3
rm -rf /usr/local/cpanel/3rdparty/fantastico_f3
rm -rf /usr/local/cpanel/base/frontend/*/fantastico_f3
rm -rf /usr/local/cpanel/bin/fantastico_f3.cpanelplugin
rm -rf /usr/local/cpanel/whostmgr/addonfeatures/fantastico_f3
rm -rf /usr/local/cpanel/whostmgr/addonsfeatures/fantastico_f3
rm -rf /usr/local/cpanel/whostmgr/docroot/addon_plugins/fantastico_f3.jpg
rm -rf /usr/local/cpanel/whostmgr/docroot/cgi/addon_fantastico_f3.php
rm -rf /usr/local/cpanel/whostmgr/docroot/cgi/fantastico_f3
rm -rf /var/cpanel/apps/fantastico_f3_cpanel.conf
rm -rf /var/cpanel/apps/fantastico_f3_whm.conf
rm -rf /var/netenberg/fantastico_f3

В случей че сте пропуснали стъпката unregister_cpanelplugi се налага да се играе още една допълнителна стъпка:

mkdir --parents /var/netenberg/fantastico_f3
cd /var/netenberg/fantastico_f3 && curl -O http://174.120.165.106/fantastico_f3/sources.tar.bz2
cd /var/netenberg/fantastico_f3 && tar --bzip2 --extract --file sources.tar.bz2
/usr/local/cpanel/bin/unregister_cpanelplugin  fantastico_f3
rm -rf /var/netenberg/

Воала вече fantastico е извън играта и можете да спите спокойно. Причините поради които го смених с конкурентен продукт са 3 и то много семпли

  • Нямат API с което мога да си комуникирам ако искам да правя допълнения или някакви други магии
  • нямат hooks при определени действия да мога да се закачам и да дописвам функционалност
  • кофти support доста бавен и не много адекватен в отговорите си

ps. paper_lantern и x3 имаше останала икона която се разкарва с

rm  /usr/local/cpanel/base/frontend/paper_lantern/dynamicui/dynamicui_fantastico_f3.conf
rm /usr/local/cpanel/base/frontend/x3/dynamicui/dynamicui_fantastico_f3.conf