Nếu bạn sử dụng nhiều máy tính, làm thế nào để bạn đồng bộ hóa mọi thứ? [đóng cửa]


31

Bây giờ tôi có 4 hoặc 5 máy tính và tôi cần một hệ thống tốt hơn để đồng bộ hóa mọi thứ. Tôi sử dụng git và github rất nhiều để đồng bộ hóa các tệp của mình cho các dự án lập trình, nhưng sau đó có cơ sở dữ liệu, tệp .bash_profile, bash script, v.v. Đôi khi, thay vì đồng bộ hóa các tệp, tôi chỉ ssh in từ máy tính này sang máy tính khác. Nhưng điều này đang trở nên khá hỗn loạn. Một số máy tính của tôi là Ubuntu và một số khác là OS X.

Bất kỳ đề xuất để quản lý một quy trình làm việc kéo dài nhiều máy tính cá nhân?


1
Có lẽ tôi nên thử các thư mục chia sẻ mạng
dan

1
@rwong Tôi có ấn tượng rằng @dan đang tìm kiếm những "câu trả lời thông thường" đó ngay từ đầu. Xem xét việc đăng câu trả lời mô tả cách sử dụng rsync và các thư mục được chia sẻ có thể giúp anh ta thoát ra.
Adam Lear

1
Rất cẩn thận.
greyfade

4
Điều này thực sự không cụ thể để lập trình. Có lẽ di cư đến SU sẽ là một nơi tốt hơn cho điều này?
Walter

1
@FarmBoy - nó sẽ phụ thuộc vào loại DB vì rất nhiều trong số chúng thực sự chỉ là các tệp ... Tôi vẫn xem đây là sự cố đồng bộ hóa tệp chứ không phải là lập trình. Và tôi nghĩ sẽ có nhiều câu trả lời hơn trên SU. Chỉ 2 xu của tôi.
Walter

Câu trả lời:


15

Tôi sử dụng kết hợp Git cho kho git và Unison cho mọi thứ khác. Tôi có một số hồ sơ unison để tôi có thể đồng bộ hóa những thứ cụ thể và một hồ sơ đồng bộ hóa mọi thứ. Tôi cũng có một tập lệnh bash đi qua và đồng bộ tất cả những thứ mà unison đồng bộ hóa sau đó đi qua và cập nhật tất cả các kho git của tôi.

Unison là điều tốt nhất trong tâm trí của tôi khi nói đến việc đồng bộ hóa máy tính.


1
Làm thế nào để bạn đồng bộ hóa cơ sở dữ liệu? Điều này có hoạt động cho cả thay đổi DDL và DML không?
Eric Wilson

Hiện tại tôi không làm việc với bất kỳ thứ gì liên quan đến SQL / cơ sở dữ liệu, vì vậy tôi không thể trả lời câu hỏi đó, vì nó không áp dụng cho tôi. Tôi đã bỏ lỡ một phần của câu hỏi ban đầu và đang trả lời làm thế nào để tôi nhận được tất cả thông tin về mã và hồ sơ.
sp0rus

Bạn có nhận được xung đột phiên bản khi bạn sử dụng Unison không? Làm thế nào để bạn giảm thiểu chúng?
dan

Tôi luôn đồng bộ hóa thủ công trước khi thay đổi bất cứ điều gì để tôi chỉnh sửa phiên bản cập nhật nhất của tệp. Tôi cũng có một công việc định kỳ được thiết lập cho mỗi đêm để đồng bộ hóa các máy tính. Tôi chưa có vấn đề gì với xung đột phiên bản bằng cách gắn bó với hệ thống này. Khi tôi phải đi chệch hướng và một cuộc xung đột xảy ra, đó là điều tôi có thể chọn người mà tôi muốn thay thế người khác.
sp0rus

15

Dropbox

Để đồng bộ hóa các tệp, việc này dễ dàng như làm việc với chúng trong một thư mục mà DropBox biết. Video trên trang chính thực hiện hầu hết các mô tả, đó là lý do tại sao tôi không bình luận về các tính năng. Chỉ cần sửa đổi một tệp được phiên bản và DropBox sẽ tự động tải nó lên, sau đó tất cả các máy khác có DropBox sẽ tự động tải xuống phiên bản mới nhất.

Đối với những thứ như cơ sở dữ liệu, symlink có thể là con đường để đi. Chủ đề này trên các diễn đàn DropBox cung cấp một cái nhìn sâu sắc về cách người ta có thể đồng bộ hóa cơ sở dữ liệu MySQL. Ngoài ra, bạn có thể thực hiện lộ trình tập lệnh "xuất / nhập" hoặc, nếu thực sự bạn đang sử dụng MySQL, bạn có thể xem Bản saocách triển khai (đây là một tính năng của MySQL không sử dụng DropBox).


Tôi không thấy cách bạn sẽ sử dụng Dropbox để đồng bộ hóa cơ sở dữ liệu.
Eric Wilson

Bạn có thể lên lịch kết xuất / khôi phục cơ sở dữ liệu thông thường đến / từ thư mục dropbox.
badgerr

6
@badgerr Cân nhắc mở rộng câu trả lời của bạn để bao gồm cách Dropbox có thể được sử dụng trong các tình huống khác nhau mà OP đã đề cập.
Adam Lear

Thật là xấu xí. Tôi muốn sử dụng một trình chạy kịch bản như DbMaintain.
Eric Wilson

1
-1 vì lý do Anna đề cập. Mở rộng câu trả lời của bạn và phiếu bầu sẽ được đảo ngược ;-)
fretje

7
  • Dropbox
  • Github
  • Firefox Sync cho dấu trang / lịch sử / cài đặt Firefox

1
+1 cho câu trả lời thẳng và cho dropbox đứng đầu. Bất kể các vấn đề PR gần đây của họ với cộng đồng nguồn mở, dropbox là vô giá đối với tôi.
Falmarri

3

Tất nhiên, bạn có thể sử dụng github cho tất cả mã của mình, bao gồm các tệp .bash_profile và tập lệnh bash.

Máy chủ Hudson / Jenkins CI tốt cho việc duy trì nhiều môi trường. Được sử dụng cùng với DbMaintain, nó cũng có thể giữ cơ sở dữ liệu của bạn đồng bộ hóa.

Nhóm của tôi sử dụng kết hợp này để đồng bộ bốn trạm ghép nối, nhiều loại máy tính xách tay và môi trường CI, TEST và QA (với các máy chủ và bản sao DB riêng của chúng.)

Điều này liên quan đến máy Windows, máy tính xách tay Mac và máy chủ Linux, vì vậy nó khá linh hoạt.


2

Tôi giữ các dotfiles của mình trong git, với các nhánh cho các thiết lập dành riêng cho máy. Nó cho phép tôi có được một máy mới được thiết lập nhanh chóng và tôi có thể chia sẻ các tập lệnh và giữ chúng ở phiên bản mới nhất.


1

Có lẽ bạn cần lùi lại một bước và tự hỏi tại sao bạn cần nhiều máy tính như vậy. Nó giống như ai đó hỏi làm thế nào để giữ tất cả những thứ của anh ấy giống nhau trong 5 chiếc xe mà anh ấy sở hữu.

Tôi sẽ đề nghị bạn tự hỏi mỗi máy làm gì mà máy chính của bạn không có, và chỉ cần làm cho nó làm điều đó.

Bạn đã xem xét một máy tính xách tay tốt?

Nếu đây là tất cả trong nhà của bạn, bạn có thể thiết lập một máy chủ và giữ tất cả những thứ ở đó. Sau đó, bạn chỉ cần có một máy có dữ liệu để sao lưu.

Nếu chúng là các máy từ xa, hãy xem xét lấy một vps linux và lưu trữ các công cụ từ xa của bạn ở đó. Không sử dụng bất kỳ dịch vụ trực tuyến miễn phí nào như github, dropbox, v.v., vì chúng có thể biến mất không đúng lúc.

Đừng sử dụng AWS để lưu trữ công cụ của bạn. ở mức $ 0,1 / tháng / GB, đó là $ 100 / tháng / TB, hoặc $ 1200 / năm / TB. Với số tiền đó, bạn có thể mua khoảng 15 ổ cứng Western Digital 1TB.

Nếu bạn điều hành một doanh nghiệp và kiếm tiền từ nó, hãy sử dụng dịch vụ tốt nhất bạn có thể nhận được, nhưng thành thật mà nói, thật khó để đánh bại các ổ đĩa cứng để di chuyển nhiều dữ liệu. Ngay cả các ổ đĩa micro USB 32 GB cũng có kích thước bằng móng tay và bạn có thể di chuyển rất nhiều dữ liệu xung quanh ...

Có đám mây, đám mây riêng. Có lẽ nên có Đám mây cá nhân ...


Cảm ơn vì những lời khuyên. Tôi có 5 máy tính, nhưng tôi chỉ sử dụng 3 trong số đó và tôi cần ba cái. 1 Ubuntu server tại nhà, máy tính xách tay 1 Thinkpad Ubuntu (vật mang tải), và 1 Macbook Pro để phát triển iOS
dan

0

Git, di chuyển từ Subversion, lần lượt di chuyển từ CVS. fgit (từ chối trách nhiệm: bởi tôi) cho pull push, statusgc.


0

Bạn đã xem xét việc tạo ra một số loại cấu trúc đám mây ở đó chưa? Có vẻ như cách duy nhất để trừu tượng hóa từ đó máy trạm có dịch vụ / tệp / điều.

Đây là một liên kết đến Ubuntu Cloud .


0

Tôi sử dụng W mộng bây giờ để thay thế cho Dropbox. Một vấn đề là thiếu giám sát thư mục trên Linux. Về cơ bản, nó quét qua tất cả các tệp mỗi phút. Phiên bản tiếp theo sẽ khắc phục điều đó bằng cách nào đó để họ nói.

Đồng bộ hóa thời gian thực trên Linux có vấn đề nếu bạn có hàng chục ngàn thư mục (ví dụ: kho git) do cách thức thực hiện inotify. Đối với mỗi thư mục cần có một "chiếc đồng hồ" - xem ví dụ https://stackoverflow.com/questions/535768/what-is-a-reasonable-amount-of-inotify-watches-with-linux


W mộng bây giờ đã chết: en.wikipedia.org/wiki/W mộng
Gwyneth Llewelyn
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.