Профиль: Резервное копирование или Синхронизация?
-
Так синхронизация, или же резервное копирование?
Мой выбор очевиден, и к тому же, начало уже было положено здесь, а спустя год снова решали проблему.
Для понимания того о чем далее пойдёт речь, советую прочесть: Резервное копирование и перенос данных в браузере Vivaldi,
не забудьте про официальную страницу справки Full reset of Vivaldi, и вот этот пост, так же обязателен к прочтению Manually Backup/Restore.Видео, как это работает:
Импорт профиля из архива в браузер + импорт пароля.
Экспорт профиля в архив, как работает сценарий.Внимание ! Прежде чем, что либо удалить, всегда делайте Резервные копии.
Предложенный ниже код, это сценарий, запустив который, вы сможете облегчить задачу сбора и архивации файлов дефолтного профиля браузера.
Работоспособность кода зависит от установленных в вашей системе программ-архиваторов. Наличие «WinRAR» или «7-ZIP» приветствуется,
поскольку код писался и тестировался только для этой "парочки". Если у вас другой софт, придётся скачать пакет 7z1900-extra.7z.
Это автономный «7-ZIP», работает без установки в систему. Распакуйте архив, вам будет нужен файл 7za.exe, а его разрядность на ваше усмотрение.
Вы можете ни чего не скачивать, и продолжать использовать свой штатный архиватор. Но тогда нужно будет, чуть подправить код сценария.
Все команды прокомментированы, и в принципе должно быть понятно - что, где и когда. Используемая мной ОСь Windows 7, на Win 8,10 - не тестировал.cls @echo off title Backup profile Vivaldi setlocal rem Принудительно "гасим" процессы браузера set "Apps=update_notifier.exe,vivaldi.exe" :stop for %%a in (%Apps%) do tasklist | findstr /irc:"^%%a" && (taskkill /f /t /im "%%a"& goto stop) rem Задаём переменные, Vivaldi - каталог юзер-профиля, vPatch - путь к exe(шнику) браузера set "Vivaldi=%LocalAppData%\Vivaldi" set "vPatch=%LocalAppData%\Vivaldi\Application\vivaldi.exe" rem Задаём переменную End, куда будет помещён архив (здесь"C:\Users\XXXXX\Documents") set "End=%UserProfile%\Documents" rem Задаём переменную UserD и создаём каталог сбора файлов (здесь системная "Temp") set "UserD=%Temp%\Vivaldi\User Data" mkdir "%UserD%\Default" rem Копируем Папки (расширения, их настройки, настройки браузера) xcopy "%Vivaldi%\User Data\Default\databases" "%UserD%\Default\databases" /s /q /i /v xcopy "%Vivaldi%\User Data\Default\Extension Rules" "%UserD%\Default\Extension Rules" /s /q /i /v xcopy "%Vivaldi%\User Data\Default\Extensions" "%UserD%\Default\Extensions" /s /q /i /v xcopy "%Vivaldi%\User Data\Default\Local App settings" "%UserD%\Default\Local App settings" /s /q /i /v xcopy "%Vivaldi%\User Data\Default\Local Extension settings" "%UserD%\Default\Local Extension settings" /s /q /i /v xcopy "%Vivaldi%\User Data\Default\Local Storage" "%UserD%\Default\Local Storage" /s /q /i /v rem Копируем кастомные логотипы Экспресс-панели (задайте свой путь) xcopy "%Vivaldi%\User Data\myLogo" "%UserD%\myLogo" /s /q /i /v rem Копируем Файлы (закладки, логины-пароли, настройки профиля) copy /v "%Vivaldi%\User Data\Default\file_mapping.json" "%UserD%\Default\file_mapping.json" copy /v "%Vivaldi%\User Data\Default\Bookmarks" "%UserD%\Default\Bookmarks" copy /v "%Vivaldi%\User Data\Default\Login Data" "%UserD%\Default\Login Data" copy /v "%Vivaldi%\User Data\Default\Preferences" "%UserD%\Default\Preferences" copy /v "%Vivaldi%\User Data\Default\Secure Preferences" "%UserD%\Default\Secure Preferences" rem Оптимизация (удаление *.ldb - обновляемые данные расширений, сайтов и настроек пользователя) rem erase "%UserD%\*.ldb" /f /s /q rem Копируем "First Run" (маркер - первый запуск и настройка произведены) copy /v "%Vivaldi%\User Data\First Run" "%UserD%\First Run" rem Задаём переменные для создания имени файла архива - из билда, даты и времени set "vBuild=%vPatch:\=\\%" wmic Datafile where name="%vBuild%" get Version /format:Textvaluelist >"%UserD%\First Run" <"%UserD%\First Run" (for /f "tokens=2 delims==" %%a in ('more') do set "outBuild=%%a") rem set "arcDT=%date: =0% %time: =0%" rem for /f "tokens=1-7 delims=/-:., " %%a in ("%arcDT%") do (set arcDT=%%c-%%b-%%a_%%d.%%e.%%f) for /f "delims=." %%i in ('wmic OS get LocalDateTime ^| find "."') do set osDT=%%i set "aYear=%osDT:~0,4%" set "aMonth=%osDT:~4,2%" set "aDay=%osDT:~6,2%" set "aHour=%osDT:~8,2%" set "aMin=%osDT:~10,2%" set "aSec=%osDT:~12,2%" set "arcDT=%aYear%-%aMonth%-%aDay%_%aHour%.%aMin%.%aSec%" set "arcName=Default [%outBuild%] %arcDT%" rem Определяем разрядность системы, ищем архиватор "7-Zip" или "WinRar" if %Processor_Architecture% == x86 (if not defined Processor_ArchiteW6432 goto bit32) goto bit64 :bit32 path "%ProgramFiles%\7-Zip\";"%ProgramFiles%\WinRAR\" goto cont :bit64 path "%ProgramW6432%\7-Zip\";"%ProgramFiles(x86)%\7-Zip\";"%ProgramW6432%\WinRAR\";"%ProgramFiles(x86)%\WinRAR\" :cont rem Запускаем процесс создания и перемещения архива, с переименованием в каталог юзера 7z a -t7z "%Temp%\backup.7z" "%Temp%\Vivaldi" && move "%Temp%\backup.7z" "%End%\%arcName%.7z" if errorlevel 1 (Rar a -ep1 -r "%Temp%\backup.rar" "%Temp%\Vivaldi" && move "%Temp%\backup.rar" "%End%\%arcName%.rar") ^ || (7za a -tzip "%Temp%\backup.zip" "%Temp%\Vivaldi" && move "%Temp%\backup.zip" "%End%\%arcName%.zip") path; rem Удаляем каталог сбора файлов rmdir /s /q "%Temp%\Vivaldi" endlocal rem Сигнал завершения =)) rundll32 user32,MessageBeep rem Открытие папки с готовым архивом explorer "%UserProfile%\Documents" timeout 3 exit
Копируем, вставляем, сохраняем документ, меняем расширение на bat. Если будете использовать 7za.exe, то он должен лежать рядом с bat-ником.
В коде сценария, пути к файлам браузера взяты от режима установки "Install per user", и задействованы системные переменные.
Вы можете менять пути, (я же не могу знать как и куда вы установили браузер) но обязательно заключайте всё в двойные кавычки.
Текущий сценарий, выполнит архивацию только "в моей" комплектации. Хотите "всё включено" - читайте публикации по ссылкам, и правьте код.
Будут минимально заархивированы: Настройки браузера, Настройки профиля, Расширения и их настройки, Закладки, Логины-пароли.
Так как я использую кастомные логотипы сайтов на экспресс-панели, код их копирования включен (плюс файл "file_mapping.json", в нём пути к лого).Немного о коде.
Строка, начинающаяся с REM (rem
), НЕ обрабатывается и может использоваться для пояснений, заметок и т.п.
стр.8 - принудительно завершит всё процессы браузера. Перед резервированием закройте браузер, иначе это сделает bat-ник.
стр.33 - оптимизация размера архива, не рекомендуется использовать (закомментирована т.к. пока в режиме тестирования).
стр.35 - команда копирования маркерного файла, самое главное действие в этом сценарии. Проверяйте наличие в архиве файла "First Run"
стр.50 - задаётся переменная имени архива, она же в свою очередь состоит из маски + две переменные - версия браузера и текущая дата.
Форма текущей даты: год-месяц-день_часы.минуты.секунды. Пример конечного результата:Default [2.5.1525.48] 2019-05-30_23.59.59
стр.49 - вы можете сформировать шаблон Дата_Время, в зависимости от ваших собственных предпочтений.
В генерации данных для переменных, в шаблон имени архива, задействована консольная утилита wmic.exe, из WMI.
Если "wmic" не отработает, что мало вероятно, то есть резерв - снять REM со строк 40 и 41, тогда как строки 42-49 закомментировать,
также присутствует шаблон дата_время, в конце стр.41 (c-b-a_d.e.f)Статья по списку запросов Useful WMIC Queries
Желающим потестировать, оптимизировать код или портировать на другие скриптовые языки - Велкам."Я не волшебник. Я еще только учусь ..."
-
Отличная тема!
Подскажите, можно ли таким образом ещё историю браузера сохранить? И как сделать такой архив автоматически под паролем? -
@vladimirf said in Профиль: Резервное копирование или Синхронизация?:
Подскажите, можно ли таким образом ещё историю браузера сохранить?
Можно, прочтите Full reset of Vivaldi, и узнаете какие ещё файлы-папки можно-нужно бекапить. И добавьте код, в блок копирования файлов.
copy /v "%Vivaldi%\User Data\Default\History" "%UserD%\Default\History"
И как сделать такой архив автоматически под паролем?
Прочтите справку к вашему архиватору.
Ключи «7-ZIP» (7za) для архива c расширением 7z :
-p123
и-mhe
-p
ключ, а123
ваш пароль - можно посмотреть содержимое архива, а чтение и излечение только по паролю.
-mhe
шифрует заголовки файлов - просмотр и извлечение только по паролю.
Ключ для архива c расширением zip : только-p123
пример команды:7z a -t7z -p123 -mhe
Ключи «WinRAR» для архивов c расширением rar и zip одинаковы.
-p123
- можно посмотреть содержимое архива, а чтение и излечение только по паролю.
-hp123
- шифрует заголовки файлов, просмотр и извлечение только по паролю.
пример команды:Rar a -ep1 -r -hp123
-
Ну вот, уже это, кое что.
-
@coleslaw said in Профиль: Резервное копирование или Синхронизация?:
Ну вот, уже это, кое что.
Вообще бессмысленно, настроек бэкапа нет, расписание тоже, с тем же успехом можно и в ручную профиль в архив пихать
-
@HellGerhard Поэтому и написал - "кое что".
Для одно-кнопочного продукта, самое то.UPD: 2022-05-14
OS:Win 8.1(Build 9600.20207)
| Vivaldi:5.1.2567.73
cls @echo off title Backup profile Vivaldi setlocal rem Принудительно "гасим" процессы браузера set "Apps=update_notifier.exe,vivaldi.exe" :stop for %%a in (%Apps%) do tasklist | findstr /irc:"^%%a" && (taskkill /f /t /im "%%a"& goto stop) rem Задаём переменные, Vivaldi - каталог юзер-профиля, vPatch - путь к exe(шнику) браузера set "Vivaldi=%LocalAppData%\Vivaldi" set "vPatch=%ProgramW6432%\Vivaldi\Application\vivaldi.exe" rem set "vPatch=%LocalAppData%\Vivaldi\Application\vivaldi.exe" rem Задаём переменную End, куда будет помещён архив (здесь"C:\Users\XXXXX\Documents") set "End=%UserProfile%\Documents" rem Задаём переменную UserD и создаём каталог сбора файлов (здесь системная "Temp") set "UserD=%Temp%\Vivaldi\User Data" mkdir "%UserD%\Default" rem Копируем папки (расширения, их настройки, настройки браузера) xcopy "%Vivaldi%\User Data\Default\databases" "%UserD%\Default\databases" /s /q /i /v xcopy "%Vivaldi%\User Data\Default\Extension Rules" "%UserD%\Default\Extension Rules" /s /q /i /v xcopy "%Vivaldi%\User Data\Default\Extensions" "%UserD%\Default\Extensions" /s /q /i /v xcopy "%Vivaldi%\User Data\Default\Local App settings" "%UserD%\Default\Local App settings" /s /q /i /v xcopy "%Vivaldi%\User Data\Default\Local Extension settings" "%UserD%\Default\Local Extension settings" /s /q /i /v xcopy "%Vivaldi%\User Data\Default\Local Storage" "%UserD%\Default\Local Storage" /s /q /i /v xcopy "%Vivaldi%\User Data\Default\VivaldiThumbnails" "%UserD%\Default\VivaldiThumbnails" /s /q /i /v rem Копируем кастомные логотипы Экспресс-панели (задайте свой путь) xcopy "%Vivaldi%\User Data\myCSS" "%UserD%\myCSS" /s /q /i /v xcopy "%Vivaldi%\User Data\myLogo" "%UserD%\myLogo" /s /q /i /v rem Копируем файлы (закладки, логины-пароли, настройки профиля) copy /v "%Vivaldi%\User Data\Default\Favicons" "%UserD%\Default\Favicons" copy /v "%Vivaldi%\User Data\Default\file_mapping.json" "%UserD%\Default\file_mapping.json" copy /v "%Vivaldi%\User Data\Default\contextmenu.json" "%UserD%\Default\contextmenu.json" copy /v "%Vivaldi%\User Data\Default\Bookmarks" "%UserD%\Default\Bookmarks" copy /v "%Vivaldi%\User Data\Default\Login Data" "%UserD%\Default\Login Data" copy /v "%Vivaldi%\User Data\Default\Preferences" "%UserD%\Default\Preferences" copy /v "%Vivaldi%\User Data\Default\Secure Preferences" "%UserD%\Default\Secure Preferences" rem Оптимизация (удаление *.ldb - обновляемые данные расширений, сайтов и настроек пользователя) erase "%UserD%\Default\Local Extension settings\*.ldb" /f /s /q erase "%UserD%\Default\Local Storage\*.ldb" /f /s /q rem Копируем "First Run" (маркер - первый запуск произведен) + "Local State" (данные расширений) copy /v "%Vivaldi%\User Data\Local State" "%UserD%\Local State" copy /v "%Vivaldi%\User Data\First Run" "%UserD%\First Run" rem Задаём переменные для создания имени файла архива - из билда, даты и времени set "vBuild=%vPatch:\=\\%" wmic Datafile where name="%vBuild%" get Version /format:Textvaluelist >"%UserD%\First Run" <"%UserD%\First Run" (for /f "tokens=2 delims==" %%a in ('more') do set "outBuild=%%a") for /f "delims=." %%i in ('wmic OS get LocalDateTime ^| find "."') do set osDT=%%i set "aYear=%osDT:~0,4%" set "aMonth=%osDT:~4,2%" set "aDay=%osDT:~6,2%" set "aHour=%osDT:~8,2%" set "aMin=%osDT:~10,2%" set "aSec=%osDT:~12,2%" set "arcDT=%aYear%-%aMonth%-%aDay%_%aHour%.%aMin%.%aSec%" set "arcName=Default [%outBuild%] %arcDT%" rem Определяем разрядность системы, ищем архиватор "7-Zip" или "WinRar" if %Processor_Architecture% == x86 (if not defined Processor_ArchiteW6432 goto bit32) goto bit64 :bit32 path "%ProgramFiles%\7-Zip\";"%ProgramFiles%\WinRAR\" goto cont :bit64 path "%ProgramW6432%\7-Zip\";"%ProgramFiles(x86)%\7-Zip\";"%ProgramW6432%\WinRAR\";"%ProgramFiles(x86)%\WinRAR\" :cont rem Запускаем процесс создания и перемещения архива, с переименованием в каталог юзера 7z a -t7z "%Temp%\backup.7z" "%Temp%\Vivaldi" && move "%Temp%\backup.7z" "%End%\%arcName%.7z" if errorlevel 1 (Rar a -ep1 -r "%Temp%\backup.rar" "%Temp%\Vivaldi" && move "%Temp%\backup.rar" "%End%\%arcName%.rar") ^ || (7za a -tzip "%Temp%\backup.zip" "%Temp%\Vivaldi" && move "%Temp%\backup.zip" "%End%\%arcName%.zip") path; rem Удаляем каталог сбора файлов rmdir /s /q "%Temp%\Vivaldi" endlocal rem Сигнал завершения =)) rundll32 user32,MessageBeep rem Открытие папки с готовым архивом explorer "%UserProfile%\Documents" timeout 3 exit
Теперь Vivaldi установлен в "Program Files", путь "%LocalAppData%" оставлен, но закомментирован.
Добавлена в копирование папка "VivaldiThumbnails" - изображения от сторонних тем для экспресс-панели.
Добавлены в копирование папка "myCSS", файлы "contextmenu.json" и "Favicons"
Включена оптимизация для уменьшения размера архива (бывшая строка 33, сейчас 38,39).
Добавлен в копирование файл "Local State" - отвечает за сохранность установленных расширений.
Генерация имени архива оставлена за WMIC, простые CMD-команды убраны. -
@coleslaw А где после последних изменений хранятся куки?
-
@HellGerhard said in >>:
А где после последних изменений хранятся куки?
О, во как - переехали. Спасибо что напомнили.
На работе v2.6.1566.49 (т.к флэш нужен), дома откатился до v4.3.2439.65, а пятёрка так, без дела болтается.Сейчас глянул - всё на скриншоте:
Проверил на ру.трекере - работает. Удалял и восстанавливал всю папку "Network",
ну а так, по хорошему, нужно подробней разбираться, что ещё и куда распихали. -
@coleslaw said in Профиль: Резервное копирование или Синхронизация?:
О, во как - переехали. Спасибо что напомнили.
Да не, гугл же вообще хочет их выпилить (
Так что пока только экспорт/импорт в json спасает -
@coleslaw said in Профиль: Резервное копирование или Синхронизация?:
Ну вот, уже это, кое что.
А где это можно скачать?
-