Решил объединить все сведения об Sqlite3 и батнике для очистки профиля, в одном посте.
Sqlite3 - утилита в данном случае используется для оптимизации и сжатия баз данных sqlite, находящихся в профиле Firefox. Запуск оптимизации реализован через батник, о котором ниже. Этот же метод оптимизации sqlite используется в SpeedyFox и эффект у них идентичен. Например places.sqlite стабильно жмется с > 10 Мб до < 2, что вроде как должно сокращать время доступа к нему при запуске Firefox. Но помимо этого, самого крупного places.sqlite, есть еще и другие sqlite в том числе принадлежащие расширениям. Например sqlite simplemail может быть намного больше places.sqlite и жаться немного сильнее. И это при каждодневной оптимизации, если же оптимизацию делать вообще первый раз или после длительного перерыва, результаты могут быть еще более значимыми.
Официальная страница утилиты. Батник и способ первоначально был выложен
dev2null здесь, кое что взято из сборки Firefox MO от
southron4965, кое что найдено мной, все комментарии тоже мои. Другие варианты батника можно найти в предыдущих постах.
Прилагаемый ниже батник, помимо запуска Sqlite3, очищает профиль и сам браузер от лишних и мусорных файлов. Очистка
не затрагивает историю, последнюю сессию, пароли и закладки. Снабжен внутренними комментариями, благодаря чему его легко редактировать или использовать как справочник. Батник точно
не предназначен для использования на версиях FF ниже 45.2 esr и 47.1 так как в нем есть записи удаляющие предположительно нужные для предыдущих версий файлы. Полностью готов для использования в сборках на основе tmemutil от
Fossyara и сборке от PortableApps, может работать и на других сборках или оригинальной версии, но потребуется редактирование путей. Тестировался на сборках 45.2-3 esr от
Fossyara и сборках 47.1-48.0 от PortablreApps.
Для использования следует поместить сам батник и sqlite3.exe в папку профиля и там запустить при закрытом браузере. При запущенном FF батник просто не начнет работать, будет висеть сообщение о необходимости закрытия браузера. Возможно реализовать автоматический запуск батника при закрытии браузера, для этого можно использовать расширение
Click&Clean или любой другой известный вам способ.
Батник делал для себя и у меня он давно и без проблем работает, но случаи бывают разные, потому перед первым использованием не забудьте сделать бэкап профиля. [more=Сам батник:]
Код: @echo off
%~d0
cd "%~dp0"
title Оптимизация/сжатие баз данных Portable Firefox
:try
cls
tasklist | find /i "firefox.exe" >nul
if not errorlevel 1 (echo. && echo. && echo. && echo Вы должны закрыть Firefox для выполнения оптимизации^! && >nul ping -n 2 127.0.0.1 && goto try)
echo.
echo.
echo.
echo Пожалуйста подождите, идет оптимизация ...
for %%i in (*.sqlite) do @echo VACUUM; | sqlite3 %%i
:: Для сжатия .sqlite`s в подпапках, перечисляем их в верхней строке, в скобках ( ) через пробел, следующая строка как пример
:: for %%i in (simplemail\*.sqlite *.sqlite) do @echo VACUUM; | sqlite3 %%i
:: Двойное двоеточие закомментирует строку
:: Некоторые строки уже закомментированы
:: Двойная точка, в начали пути к файлу, заставит искать файл в каталоге на уровень выше текущего
:: Пути с пробелами заключаются в кавычки
:: Пробелов в конце строк быть не должно
:: /f Принудительное удаление "read only" файлов
:: /q Отключение подтверждения при удалении
:: /s Удаление папки вместе с содержимым
:: Файлы дистрибутива
if exist ..\browser\crashreporter-override.ini del /f /q ..\browser\crashreporter-override.ini
if exist ..\crashreporter.exe del /q ..\crashreporter.exe
if exist ..\crashreporter.ini del /f /q ..\crashreporter.ini
if exist ..\install.log del /f /q ..\install.log
if exist ..\maintenanceservice.exe del /q ..\maintenanceservice.exe
if exist ..\maintenanceservice_installer.exe del /q ..\maintenanceservice_installer.exe
if exist ..\webapp-uninstaller.exe del /q ..\webapp-uninstaller.exe
if exist ..\uninstall rmdir /s /q ..\uninstall
:: Предустановленные словари, если есть свои то эти не нужны
:: if exist ..\dictionaries rmdir /s /q ..\dictionaries
:: Файлы дистрибутива Apps
if exist ..\..\App\Firefox\browser\crashreporter-override.ini del /f /q ..\..\App\Firefox\browser\crashreporter-override.ini
if exist ..\..\App\Firefox\crashreporter.exe del /q ..\..\App\Firefox\crashreporter.exe
if exist ..\..\App\Firefox\crashreporter.ini del /f /q ..\..\App\Firefox\crashreporter.ini
if exist ..\..\App\Firefox\maintenanceservice.exe del /q ..\.\App\Firefox\maintenanceservice.exe
if exist ..\..\App\Firefox\maintenanceservice_installer.exe del /q ..\..\App\Firefox\maintenanceservice_installer.exe
if exist ..\..\App\Firefox\uninstall rmdir /s /q ..\..\App\Firefox\uninstall
if exist ..\..\App\Firefox64\browser\crashreporter-override.ini del /f /q ..\..\App\Firefox64\browser\crashreporter-override.ini
if exist ..\..\App\Firefox64\crashreporter.exe del /q ..\..\App\Firefox64\crashreporter.exe
if exist ..\..\App\Firefox64\crashreporter.ini del /f /q ..\..\App\Firefox64\crashreporter.ini
if exist ..\..\App\Firefox64\maintenanceservice.exe del /q ..\..\App\Firefox64\maintenanceservice.exe
if exist ..\..\App\Firefox64\maintenanceservice_installer.exe del /q ..\..\App\Firefox64\maintenanceservice_installer.exe
if exist ..\..\App\Firefox64\uninstall rmdir /s /q ..\..\App\Firefox64\uninstall
:: Предустановленные словари, если есть свои то эти не нужны
:: if exist ..\..\App\Firefox\dictionaries rmdir /s /q ..\..\App\Firefox\dictionaries
:: if exist ..\..\App\Firefox64\dictionaries rmdir /s /q ..\..\App\Firefox64\dictionaries
:: Мусор плагинов и расширений
if exist ..\browser\plugins\sumatrapdfcache rmdir /s /q ..\browser\plugins\sumatrapdfcache
if exist adblockplus\*.tmp del /f /q adblockplus\*.tmp
if exist adblockplus\*backup*.ini del /f /q adblockplus\*backup*.ini
if exist adblockplus\patterns-*.ini del /f /q adblockplus\patterns-*.ini
if exist AppData\Adobe rmdir /s /q AppData\Adobe
if exist AppData\Macromedia rmdir /s /q AppData\Macromedia
if exist AppData\Microsoft rmdir /s /q AppData\Microsoft
:: if exist autoproxy\*backup*.ini del /f /q autoproxy\*backup*.ini
if exist custombuttons\backup\buttonsoverlay.xul*.bak del /f /q custombuttons\backup\buttonsoverlay.xul*.bak
if exist custombuttons\backup\buttonsoverlay.xul*.sbk del /f /q custombuttons\backup\buttonsoverlay.xul*.sbk
if exist flashgot.lo* del /f /q flashgot.lo*
if exist LocalAppData\Adobe rmdir /s /q LocalAppData\Adobe
if exist LocalAppData\Macromedia rmdir /s /q LocalAppData\Macromedia
if exist LocalAppData\Microsoft rmdir /s /q LocalAppData\Microsoft
if exist UnMHT rmdir /s /q UnMHT
:: Мусор профиля
if exist "AppData\Mozilla\Firefox\Crash Reports" rmdir /s /q "AppData\Mozilla\Firefox\Crash Reports"
if exist Cache rmdir /s /q Cache
if exist Cache2 rmdir /s /q Cache2
if exist crashes rmdir /s /q crashes
if exist datareporting rmdir /s /q datareporting
if exist enumerate_devices.txt del /f /q enumerate_devices.txt
if exist frequencyCap.json del /f /q frequencyCap.json
if exist healthreport rmdir /s /q healthreport
if exist healthreport.sqlite del /f /q healthreport.sqlite
if exist indexedDB rmdir /s /q indexedDB
if exist LocalAppData\Temp rmdir /s /q LocalAppData\Temp
if exist marionette.log del /f /q marionette.log
if exist mozilla-media-cache rmdir /s /q mozilla-media-cache
if exist netpredictions.sqlite del /f /q netpredictions.sqlite
if exist reading-list.sqlite del /f /q reading-list.sqlite
if exist revocations.txt del /f /q revocations.txt
if exist safebrowsing rmdir /s /q safebrowsing
if exist saved-telemetry-pings rmdir /s /q saved-telemetry-pings
if exist seer.sqlite del /f /q seer.sqlite
if exist SiteSecurityServiceState.txt del /f /q SiteSecurityServiceState.txt
if exist startupCache rmdir /s /q startupCache
if exist storage rmdir /s /q storage
if exist Telemetry.FailedProfileLocks.txt del /f /q Telemetry.FailedProfileLocks.txt
if exist Telemetry.ShutdownTime.txt del /f /q Telemetry.ShutdownTime.txt
if exist TestPilotErrorLog.log del /f /q TestPilotErrorLog.log
if exist thumbnails\*.png del /f /s /q thumbnails\*.png
if exist times.json del /f /q times.json
if exist weave\logs\error-sync*.txt del /f /q weave\logs\error-sync*.txt
:: Вроде история RSS-ленты
if exist webapps rmdir /s /q webapps
if exist webappsstore.sqlite del /f /q webappsstore.sqlite
if exist webappsstore.sqlite-* del /f /q webappsstore.sqlite-*
:: Для установочных и PortableApps версий
if exist "%AppData%\Mozilla\Firefox\Crash Reports\" rmdir /s /q "%AppData%\Mozilla\Firefox\Crash Reports\"
:: Ежедневные копии закладок
if exist bookmarkbackups\* del /f /q bookmarkbackups\*
:: Хранит версию и пути Firefox
:: if exist compatibility.ini del /f /q compatibility.ini
:: Настройки масштаба сайтов
:: if exist content-prefs.sqlite del /f /q content-prefs.sqlite
:: История заполнения веб-форм, в том числе и строки поиска
:: if exist formhistory.sqlite del /f /q formhistory.sqlite
:: Неверные или не в той кодировке параметры из файла prefs.js
:: if exist Invalidprefs.js del /f /q Invalidprefs.js
:: Старые about:config, создаются при обновлении версии
:: if exist prefs-*.js del /f /q prefs-*.js
:: Сохраненные сессии текущая и старые
:: if exist sessionstore.js del /f /q sessionstore.js
if exist sessionstore-backups rmdir /s /q sessionstore-backups
:: Обои рабочего стола установленные через FF
if exist desktop/*.jpg del /f /q desktop/*.jpg
if exist desktop/*.jpeg del /f /q desktop/*.jpeg
if exist desktop/*.png del /f /q desktop/*.png
:: OfflineCache
if exist OfflineCache rmdir /s /q OfflineCache
:: Можно вообще заменить файлом "read only" без расширения, что бы ни чего не писалось
if exist minidumps rmdir /s /q minidumps
:: Иконки для списка истории
if exist jumpListCache rmdir /s /q jumpListCache
:: В этой секции новые пункты, кроме тех что прокомментированы отдельно
if exist directoryLinks.json del /f /q directoryLinks.json
if exist localstore.rdf del /f /q localstore.rdf
:: Отсутствуют и в Apps и в Tmem выше 45.2, возможно артефакты
if exist addons.sqlite del /f /q addons.sqlite
if exist bookmarks-*.html del /f /q bookmarks-*.html
if exist bookmarks-*.json del /f /q bookmarks-*.json
if exist cshelper.cfg del /f /q cshelper.cfg
if exist dh-conv-rules.rdf del /f /q dh-conv-rules.rdf
if exist dh-media-lists.rdf del /f /q dh-media-lists.rdf
if exist dh-smart-names.rdf del /f /q dh-smart-names.rdf
if exist downloads.json del /f /q downloads.json
if exist downloads.sqlite del /f /q downloads.sqlite
if exist extensions.log del /f /q extensions.log
if exist extensions.sqlite del /f /q extensions.sqlite
if exist foxydeal.json del /f /q foxydeal.json
if exist foxydeal.sqlite del /f /q foxydeal.sqlite
if exist localstore-safe.rdf del /f /q localstore-safe.rdf
if exist metro rmdir /s /q metro
if exist search-metadata.json del /f /q search-metadata.json
if exist search.json del /f /q search.json
if exist search.json.tmp del /f /q search.json.tmp
if exist search.rdf del /f /q search.rdf
if exist searchplugins rmdir /s /q searchplugins
if exist sessionbackups rmdir /s /q sessionbackups
if exist sessionstore.bak-* del /f /q sessionstore.bak-*
if exist sessionstore.js.tmp del /f /q sessionstore.js.tmp
if exist shortcutCache rmdir /s /q shortcutCache
if exist thumbnails-old rmdir /s /q thumbnails-old
if exist websearches.sqlite rmdir /s /q websearches.sqlite
:: Дальнейшие строки просто для информации
:: blocklist.xml - список заблокированных дополнений
:: cert_override.txt - user-исключения сертификатов
:: cert8.db - сертификаты безопасности
:: content-prefs.sqlite - индивидуальные настройки страниц
:: cookies.sqlite - куки
:: extensions.ini - список расширений и тем
:: key3.db - ключ шифрования паролей
:: logins.json - сохраненные пароли
:: mimeTypes.rdf - типы файлов "открыть-сохранить"
:: parent.lock - создается в активном профиле
:: permissions.sqlite - разрешения для сайтов
:: persdict.dat - слова, добавленные вами в словарь
:: places.sqlite - закладки и журнал посещений
:: pref.js - about:config
:: search.json.mozlz4 - поисковые системы
:: secmod.db - база данных модулей защиты
:: signons.sqlite - сайты с "не сохранять пароль"
:: user.js - значения переписываемые в "pref.js" при запуске, изменить может только пользователь
:: webappsstore.sqlite - хранилище DOM, для веб-сайтов
:: xulstore.json - настройки панелей, окон
:: Изредка обновляемая страница о файлах и папках FF
::
https://mozilla-russia.org/products/firefox/profiles.html :: Содержит ошибки
:: Системные пути, на случай применения в установочной версии и некоторых сборках
:: rmdir /s /q "%Temp%"
:: rmdir /s /q "%LocalAppData%\Temp"