Giữ các tệp cấu hình được đồng bộ hóa trên nhiều máy tính


15

Tôi có một vài máy linux khác nhau và rất nhiều tệp cấu hình (và thư mục) trên mỗi máy.

Ví dụ:

~/.ssh/config
~/.config/openbox/rc.xml
~/.config/openbox/autostart.sh
~/.scripts/ ( folder )
~/.bashrc
...etc

Có một phương pháp đơn giản và thanh lịch để giữ cho các tệp này được đồng bộ hóa giữa các máy của tôi (một máy không có truy cập internet) ?

Ngoài ra, một số tệp sẽ cần một quy trình đồng bộ hóa nâng cao hơn, vì chúng sẽ phải khác nhau đôi chút ... ví dụ:

Bàn phím máy tính để bàn của tôi có một loạt các phím nóng, trong đó máy tính xách tay của tôi gần như không có. Tôi sử dụng XF86Mailđể mở thunderbird trên máy tính để bàn của mình, nhưng Meta+ Mtrên máy tính xách tay của tôi.

My Home Desktop và Work Desktop đều được định hướng "nhiều người dùng" hơn, trong đó Laptop của tôi chỉ dành cho tôi. Vì vậy, trên máy tính xách tay của tôi, tôi có xu hướng giữ tệp 'RC.xml' cho hộp mở tại /etc/xdg/openbox/rc.xmlnhưng trên máy tính để bàn tại~/.config/openbox/rc.xml

Câu trả lời:


10

Giữ các tập tin dưới sự kiểm soát phiên bản. Điều này có nhiều lợi ích, bao gồm tạo điều kiện cho các tệp được đồng bộ hóa (cam kết trên một máy, cập nhật trên các máy khác) và giữ lịch sử thay đổi (để bạn có thể dễ dàng tìm ra những gì đã phá vỡ một chương trình hoạt động vào tháng trước).

Tôi sử dụng CVS và đồng bộ hóa các kho lưu trữ với Unison hoặc sneakernet, nhưng đó là vì tôi đã làm điều này từ một thời gian trước khi kiểm soát phiên bản phân tán có sẵn rộng rãi. Bất cứ ai bắt đầu bây giờ nên sử dụng một công cụ kiểm soát phiên bản phân tán thích hợp , chẳng hạn như chợ, darcs, git, mercurial, ...

Quản lý tập tin cần khác nhau giữa các máy luôn là một chút khó khăn. Nếu ngôn ngữ cấu hình cho phép điều kiện, sử dụng chúng. Mặt khác, nếu có một cơ chế bao gồm, hãy sử dụng nó để chia tệp cấu hình thành một phần phụ thuộc vào máy và một phần dùng chung. Giữ tất cả các bộ phận phụ thuộc vào máy trong một thư mục riêng (giống như ~/.local/NAME/) luôn được nhắc đến thông qua một liên kết tượng trưng ( ~/.here-> local/NAMEtrên mỗi máy). Tôi có một vài tệp được tạo bởi tập lệnh trong phần được chia sẻ từ các tham số được giữ trong phần dành riêng cho máy; điều này ngăn cản việc sửa đổi các tệp này một cách gián tiếp thông qua giao diện cấu hình GUI. Tránh cấu hình mọi thứ trong /etc, khó đồng bộ hóa giữa các máy.


Tôi sử dụng gitcho mục đích này. repo của tôi cho ~/.etctôi cũng có một ~/.usr~/.vartôi ước rằng các thư mục này là tiêu chuẩn để KDE sẽ ngừng ném tất cả các tệp tmp / var / config / etc trong .kde. thật khó để biết những gì tôi muốn trong thư mục nhà của tôi.
xenoterracide

5

Tôi đồng ý với câu trả lời kiểm soát phiên bản , nhưng một phương pháp khác mà tôi đã thử nghiệm gần đây là Dropbox . Về cơ bản, đây là một hệ thống kiểm soát phiên bản tự động đồng bộ hóa giữa tất cả các máy của bạn, vì vậy nếu bạn chỉnh sửa tệp trên một máy tính, bạn sẽ thấy các thay đổi được phản ánh trên các máy tính khác của mình trong vài giây, mà không cần phải cam kết trước đó và cập nhật trên sau này

Gói cơ bản miễn phí của họ là 2GB, vì vậy tôi sử dụng nó để phiên bản các tệp cấu hình và nhật ký trò chuyện của mình


lợi ích chính tôi thấy ở đây là việc thiết lập dễ dàng hơn nhiều.
Ashesh Kumar Singh

3

PuppetCfengine là hai công cụ tốt để đồng bộ hóa các tệp (và nhiều hơn nữa ..)


Ngoài ra còn có đầu bếp nhưng những công cụ này thực sự là để quản lý một số lượng lớn máy móc, có thể là quá mức cần thiết cho 2 hoặc 3 hệ thống
xenoterracide

1

Ngày nay, người ta có thể nhận được phản hồi tốt nhất (dvcs) và thứ hai (dropbox) với spark Meatare , cung cấp trải nghiệm người dùng giống như dropbox với lưu trữ dựa trên git phía sau hậu trường.

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.