Часть I. Бэкап кэша.
Создаём скрипт примерно такого содержания (и сохранем в виде файла с расширением .CMD):
:: Определяем пути к папке профиля и папке кэша. :: В Firefox 1.0.x кэш обычно располагается в %ProfilePath%\Cache set ProfilePath=%AppData%\Mozilla\Firefox\Profiles\<имя_профиля> set CachePath=%ProfilePath%\Cache set BackupFile="<путь_к_файлу_бэкапа>.zip" :: Проверяем (косвенно через файл parent.lock, запущен ли Firefox. :: Бэкап можно делать только при незапущенном браузере (и незапущенном кэше=) if not exist "%ProfilePath%\parent.lock" ( if "%1"=="+profile" start "WinRAR" "с:\Program Files\WinRAR\WinRAR.exe" u "<путь_к_папке_с_бэкапами_BackupFox\username_%date%.firefox" -as -afzip -m1 -EP1 -r -ibck -inul -x*\cache\* "%ProfilePath%" if not exist "%CachePath%.Trash\" ( echo Производится резервное копирование кэша.. "с:\Program Files\WinRAR\WinRAR.exe" u %BackupFile% -as -m1 -EP1 -r -ibck -inul "%CachePath%\*.*" echo Копирование окончено. ) else ( echo Предположительно, кэш испорчен. Удалите папку %CachePath%.Trash и перезапустите скрипт. pause ) )
Скрипт может работоспособен только, если браузер не запущен, поэтому запускать его можно:
[*] через автозагрузку;
[*] по расписанию Планировщика задач;
[*] перед запуском браузера (вставить вызов скрипта в код launcher'a);
[*] вручную
Небольшая особенность работы: перед первым запуском необходимо удалить папку %CachePath%.Trash, именно по ней определяется испорченность кэша.
Недостаток: если кэш испорчен, но отсутствует папка %CachePath%.Trash, бэкап всё равно произойдёт.
Часть II. Восстановление кэша, он же launcher
@echo off :: Можно перед запуском FF делать бэкап кэша. Для этого раскомментируйте (уберите :: в след. строке): ::call "<путь_к_предыдущему_скриту>" :: Определяем пути к папке профиля и папке кэша. :: В Firefox 1.0.x кэш обычно располагается в %ProfilePath%\Cache set ProfilePath=%AppData%\Mozilla\Firefox\Profiles\<имя_профиля> set CachePath=%ProfilePath%\Cache set BackupFile="<путь_к_файлу_бэкапа>.zip" if not exist "%ProfilePath%\parent.lock" if exist "%CachePath%.Trash\" if exist %BackupFile% ( echo Производится восстановление кэша.. del /q "%CachePath%\*.*" "c:\Program Files\WinRAR\WinRAR.exe" e %BackupFile% "%CachePath%" rd "%CachePath%.Trash\" echo Восстановление закончено. ) start "Firefox" "firefox.exe"
Сохраняем и меняем в ярлыке FF путь к исполняемому файлу на путь к скрипту. Чтобы при запуске не мелькало окошко консоли, в свойствах ярлыка устанавливаем запуск в свёрнутом состоянии:
Недостаток: восстановление кэша происходит во второй после вылета запуск FF. (Всё та же проверка %CachePath%.Trash.. По-хорошему, нужно написать полноценную программу, а не скрипты..).
Полуфабрикаты скриптов можно скачать здесь: Backup FF Cache.cmd, Restore FF Cache.cmd. Не забудьте поменять все пути в файлах!
Примечание: скрипты тестировались исключительно в Windows XP. Работу в других ОС, особенно 9х, не гарантирую.
Продолжение следует..
Отредактировано djet (02-06-2005 20:23:26)
Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)
Отсутствует
Отладил скрипты. Теперь launcher работает как 2-в-1 (backup+restore), плюс можно дополнительно бэкапить папку профился с помощью ключа +profile.
Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)
Отсутствует
gass512
сохранем в виде файла с расширением .CMD)
djet Молодца!! Ещё надо мануал и в аплоад готовые выложи, а то чувствую будет много вопросов
---/)/)---(\.../)---(\(\
--(':'=)---(=';'=)---(=':')
(")(")..)-(").--.(")-(..(")(")
Отсутствует
полностью согалсен. идея хорошая, но надо грамотно донести до рядовых юзеров.
мало того, она только в windows работать будет.
но в любом случае - спасибо за работу, главное - не останавливайся
Отсутствует
gass512
Уже написал, что в батник нужно сохранять...
Viper
Решил отложить написание мануала до появления вопросов А в аплоад рано пока: в них есть, что отлаживать.. Я уже раз 10-15, наверное, пост редактировал..
RED
мало того, она только в windows работать будет.
Я думаю, пользователи *nix достаточно квалифицированные, чтобы эти бантики в bash портировать Главное - идея понятна.
Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)
Отсутствует
если переписать под vbs консольных окон не будет и никто ничего не заметит))
Sometimes I give myself the creeps,
Sometimes my mind plays tricks on me...
Отсутствует
lcraFTl Попробуй при включеном фф вилку от компа из розетки выдернуть, кэш волшебным образом исчезнет
---/)/)---(\.../)---(\(\
--(':'=)---(=';'=)---(=':')
(")(")..)-(").--.(")-(..(")(")
Отсутствует
Viper
А вдруг у lcraFTl стоит бесперебойник? Лучше уж просто подержать несколько секунд кнопку включения/выключения.
Благодарю алфавит за любезно предоставленные буквы.
Отсутствует
, бесперебойника нету, но надо будеть заиметь для стабильности
Кэш у меня на 50 мег стоит, я думаю у тех у кого кабельный инет, или типа того, то кэш не проблема вообще.
А у вас на сколько мб стоит кэш?
Кстати про кэш, не про Лисий, а про виндовский, у кого Celeron или похожие, попробуйте прогу CachemanXP 1.0 (ключики есть), я поставил, так вообще скорость повысилась
Отсутствует
Попробуй при включеном Firefox вилку от компа из розетки выдернуть, кэш волшебным образом исчезнет
Достаточно убить процесс firefox.exe из диспетчера задач (например, фокс завис, по любой причине), а также просто выйти из виндов через пуск-выключение, при запущенном фоксе . Так что проблема актуальна, и бесперебойник тут совсем не при чем.
Ради эксперимента, есть еще один вариант. Надо при запуске фокса проверять в файле _CACHE_MAP_ , который в папке кэша лежит, байт по адресу 000F, и принудительно его обнулять. Тогда фокс при старте кэш не сбросит, если был некорректно закрыт перед этим. Кто-нибудь программить может? Или отследить отладчиком каким-нить, когда фокс проверяет этот байт, может можно патч написать? Это не совсем корректный выход из положения, но уж очень хочется потестировать, насколько он некорректный, а может все нормально ?
Из практики:
- А скажите, Linux - это хороший Windows ?
Отсутствует
lcraFTl
Не исправят.
Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)
Отсутствует
lcraFTl
За 4 года не было создано ни одного патча. Куда уж к 1.1.. Они, конечно, планируют реорганизовать кэш на SQLLite (что ли?), но вряд ли мы скоро это увидим.
Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)
Отсутствует
Да, это ведь вовсе не баг, а enhancement на багзилле. Пустяк, конечно, что из-за отсутсвтвия этой фичи тысячи пользователей отказались от продуктов MoFo.
Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)
Отсутствует
Viper
Почитай комментарии на багзилле. Некоторые чуть ли не стенку лезли, на IE возвращались, на Оперу переходили..
Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)
Отсутствует
Скорее странно отношение разработчиков к этой проблеме.
Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)
Отсутствует