¿Cómo puedo ver el contenido de una copia de seguridad del archivo de base de datos dconf?

20

Tomé una copia de seguridad del archivo donde dconfestá almacenada mi base de datos ( ~/.config/dconf/userque es un archivo binario), y ahora necesito mover algunas claves de la copia de seguridad a la dconfen uso.

¿Cómo puedo ver el contenido de la copia de seguridad dconfsin ponerlo "en su lugar" y verlo, por ejemplo dconf-editor?

PetaspeedBeaver
fuente

Respuestas:

25

Para ver el contenido de ese archivo, puede cambiarle el nombre, por ejemplo test, colocarlo debajo ~/.config/dconf/y luego dconfleer / volcar la configuración de ese archivo.
Por defecto , dconflee el user-db encontrado en $XDG_CONFIG_HOME/dconf/:

Una "user-db"línea especifica una base de datos de usuario.
Estas bases de datos se encuentran en $XDG_CONFIG_HOME/dconf/. El nombre del archivo para abrir en ese directorio es exactamente como está escrito en el perfil. Se espera que este archivo esté en el formato de base de datos binario dconf. Tenga en cuenta que XDG_CONFIG_HOMEno se puede configurar / modificar por terminal o sesión, porque entonces el escritor y el lector estarían trabajando en diferentes bases de datos (DBus inicia el escritor y no puede ver esa variable).

Como resultado, necesitaría un perfil personalizado que apunte a ese archivo db en particular, por ejemplo, user-db:testy luego instruya dconfa volcar los datos (usando el perfil personalizado) a través de la DCONF_PROFILEvariable de entorno:

cd
cp /path_to_backup_dconf/user ~/.config/dconf/test
printf %s\\n "user-db:test" > db_profile
DCONF_PROFILE=~/db_profile dconf dump / > old_settings

El resultado es un archivo ( old_settings) que contiene la configuración de su dconfarchivo respaldado , por ejemplo:

[org/gnome/desktop/interface]
font-name='DejaVu Sans Oblique 10'
document-font-name='DejaVu Sans Oblique 10'
gtk-im-module='gtk-im-context-simple'
clock-show-seconds=true
icon-theme='HighContrast'
monospace-font-name='DejaVu Sans Mono Oblique 10'

[org/gnome/desktop/input-sources]
sources=@a(ss) []
xkb-options=@as []

[org/gnome/desktop/wm/preferences]
num-workspaces=4
titlebar-font='DejaVu Sans Bold Oblique 10'

.......

Luego puede eliminar esos archivos:

rm -f ~/db_profile ~/.config/dconf/test

y cargue la configuración anterior en la base de datos actual:

dconf load / < old_settings

Si desea volcar solo configuraciones específicas solo proporcione la ruta:

DCONF_PROFILE=~/db_profile dconf dump /org/gnome/desktop/wm/preferences/
[/]
num-workspaces=4
titlebar-font='DejaVu Sans Bold Oblique 10'

pero tenga en cuenta que para cada ruta debe tener un archivo diferente y cuando lo carga debe especificar la ruta en consecuencia:

dconf load /org/gnome/desktop/wm/preferences/ < old_wm_settings

También tenga en cuenta que, debido a los cambios anteriores, las dconfbases de datos antiguas pueden contener rutas, claves y valores que no son válidos en las versiones más recientes, por dconflo que no siempre se garantiza la compatibilidad total entre los archivos db creados por diferentes versiones de . En ese caso, tendría que inspeccionar el old_settingsarchivo resultante y eliminar o editar manualmente las entradas que no son válidas antes de cargarlo en su base de datos actual.

don_crissti
fuente
17
WTF? ¿Quién es responsable de este desastre y quién debe ser golpeado por esto? (Pero: muchas gracias por esta información, también me ayudó.)
Tino
1
@Tino gnome devs creo :) Pero debería haber algunas herramientas de front-end
Anwar
Los contribuyentes se muestran en gitlab.gnome.org/GNOME/dconf/graphs/master
Ben Creasy
Creo que leer no es un problema. Simplemente configúrelo XDG_CONFIG_HOMEen otro directorio. No se necesita magia de perfil. Pero escribir en un archivo dconf arbitrario es difícil y puede hacer que su perfil sea necesario.
Torsten Bronger
-1

Creo que la primera respuesta complica demasiado el asunto, así que intentemos nuevamente, usando /org/cinnamon/como espacio de nombres de ejemplo para hacer una copia de seguridad y restaurar:

Para hacer una copia de seguridad / org / canela /:

Desde una terminal, ejecute:

dconf dump /org/cinnamon/ > backup_of_my_cinnamon_settings

guardar el backup_of_my_cinnamon_settingsarchivo en algún lugar para más tarde

Para restablecer / org / canela / a los valores predeterminados:

dconf reset -f /org/cinnamon/

Tenga en cuenta que la canela puede congelarse o bloquearse al hacer esto

Para restaurar todas las configuraciones para / org / cinnamon:

dconf load /org/cinnamon/ < backup_of_my_cinnamon_settings


El proceso sería el mismo para /org/gnome/terminal/, etc.

Para obtener mejores resultados, actualice las referencias de la aplicación cuando no se estén ejecutando.

Gracias a Cinnamon docs por los consejos.

Mark Stosberg
fuente
3
Creo que debería intentarlo de nuevo: la pregunta aquí no es cómo hacer una copia de seguridad y restaurar algunas configuraciones, sino cómo ver (y tal vez cargar ) las configuraciones desde un archivo binario guardado .
don_crissti