Làm cách nào tôi có thể xem nội dung của bản sao lưu của tệp cơ sở dữ liệu dconf?


20

Tôi đã thực hiện sao lưu tệp nơi dconfcơ sở dữ liệu của tôi được lưu trữ ( ~/.config/dconf/userlà tệp nhị phân) và bây giờ tôi cần chuyển một số khóa từ bản sao lưu sang dconfsử dụng.

Làm thế nào tôi có thể xem nội dung của bản sao lưu dconfmà không đặt nó "đúng chỗ" và xem nó với ví dụ dconf-editor?

Câu trả lời:


25

Để xem nội dung của tệp đó, bạn có thể đổi tên nó - ví dụ: testđặt nó bên dưới ~/.config/dconf/và sau đó dconfđọc / kết xuất các cài đặt từ tệp đó.
Theo mặc định , dconfđọc db người dùng được tìm thấy trong $XDG_CONFIG_HOME/dconf/:

Một "user-db"dòng chỉ định cơ sở dữ liệu người dùng.
Những cơ sở dữ liệu được tìm thấy trong $XDG_CONFIG_HOME/dconf/. Tên của tệp để mở trong thư mục đó là chính xác như nó được viết trong hồ sơ. Tập tin này dự kiến ​​sẽ ở định dạng cơ sở dữ liệu nhị phân nhị phân. Lưu ý rằng XDG_CONFIG_HOMEkhông thể được đặt / sửa đổi trên mỗi thiết bị đầu cuối hoặc phiên, bởi vì sau đó người viết và người đọc sẽ làm việc trên các DB khác nhau (người viết được DBus khởi động và không thể thấy biến đó).

Kết quả là, bạn sẽ cần một cấu hình tùy chỉnh trỏ đến tệp db cụ thể đó - ví dụ: user-db:testsau đó hướng dẫn dconfđổ dữ liệu (sử dụng cấu hình tùy chỉnh) thông qua DCONF_PROFILEbiến môi trường:

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

Kết quả là một tệp ( old_settings) chứa các cài đặt từ dconftệp được sao lưu của bạn , ví dụ:

[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'

.......

Sau đó, bạn có thể xóa các tệp đó:

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

và tải các cài đặt cũ vào cơ sở dữ liệu hiện tại:

dconf load / < old_settings

Nếu bạn muốn kết xuất chỉ các cài đặt cụ thể, chỉ cần cung cấp đường dẫn:

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

nhưng lưu ý rằng đối với mỗi đường dẫn, bạn nên có một tệp khác nhau và khi bạn tải nó, bạn nên chỉ định đường dẫn phù hợp:

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

Cũng lưu ý rằng, do thay đổi ngược dòng, dconfcơ sở dữ liệu cũ hơn có thể chứa đường dẫn, khóa và giá trị không hợp lệ trong các phiên bản mới hơn nên khả năng tương thích hoàn toàn giữa các tệp db được tạo bởi các phiên bản khác nhau dconfkhông được đảm bảo. Trong trường hợp đó, bạn sẽ phải kiểm tra old_settingstệp kết quả và xóa hoặc chỉnh sửa thủ công các mục không hợp lệ trước khi tải nó vào cơ sở dữ liệu hiện tại của bạn.


17
WTF? Ai chịu trách nhiệm cho mớ hỗn độn này và ai nên bị đánh vì điều này? (Nhưng: Cảm ơn bạn rất nhiều vì thông tin này, nó cũng giúp tôi.)
Tino

1
Tôi tin rằng @Tino gnome devs :) Nhưng nên có một số công cụ front-end
Anwar

Những người đóng góp được hiển thị tại gitlab.gnome.org/GNOME/dconf/graphs/master
Ben Creasy

Tôi nghĩ rằng đọc không phải là một vấn đề. Chỉ cần đặt XDG_CONFIG_HOMEvào thư mục khác. Không có ma thuật hồ sơ cần thiết. Nhưng viết vào một tập tin dcs tùy ý là khó khăn và có thể làm cho hồ sơ lừa của bạn cần thiết.
Torsten Bronger

-1

Tôi nghĩ rằng câu trả lời đầu tiên quá phức tạp cho vấn đề, vì vậy, hãy thử lại, sử dụng /org/cinnamon/làm không gian tên ví dụ để sao lưu và khôi phục:

Để sao lưu / org / quế /:

Từ một thiết bị đầu cuối, chạy:

dconf dump /org/cinnamon/ > backup_of_my_cinnamon_settings

lưu backup_of_my_cinnamon_settingstập tin ở đâu đó để sau

Để đặt lại / org / quế / về mặc định:

dconf reset -f /org/cinnamon/

Lưu ý, quế có thể đóng băng hoặc sụp đổ khi làm điều này

Để khôi phục tất cả các cài đặt của bạn cho / org / quế:

dconf load /org/cinnamon/ < backup_of_my_cinnamon_settings


Quá trình sẽ giống nhau cho /org/gnome/terminal/, vv

Để có kết quả tốt nhất, hãy cập nhật tài liệu tham khảo ứng dụng khi chúng không chạy.

Cảm ơn tài liệu Cinnamon cho lời khuyên.


3
Tôi nghĩ bạn nên thử lại: câu hỏi ở đây không phải là cách sao lưu và khôi phục một số cài đặt mà là cách xem (và có thể tải ) các cài đặt từ tệp nhị phân đã lưu .
don_crissti
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.