Saturday, October 12, 2013

Đồng bộ hóa dữ liệu giữa hai Server Ubuntu 11.10 sử dụng Unison

Giới thiệu :

Unison là một công cụ đồng bộ hóa tập tin tương tự như  Rsync, nhưng sự khác biệt lớn là nó đồng bộ hóa thay theo kiểu Master-Master, nghĩa là: các tập tin thay đổi trên server1 thì server2  sẽ thay đổi theo và ngược lại .

Chuẩn bị :


2 server chạy ubuntu server 11.10 với hostname và IP từng Server như sau :

Kgp-A.vn   200.200.200.134
Kgp-B.vn  200.200.200.135


Và tôi muốn đồng bộ thư mục chứa dữ liệu cần đồng bộ là  /kenhgiaiphap  ở 2 server ( tạo thư mục này bên 2 server ) .

Thực Hiện :


Install Unison và SSH cho 2 server 

# apt-get install unison openssh-server ssh

Tạo private/public key trên server  kgp-A.vn

# ssh-keygen -t dsa

 
Sau đó copy public key của server  kgp-A.vn đến server  kgp-B.vn 
 
# ssh-copy-id -i $HOME/.ssh/id_dsa.pub  root@200.200.200.135


Qua server  kgp-B.vn kiểm tar xem public key của server  kgp-A.vn chuyển qua chưa 

# cat $HOME/.ssh/authorized_keys

 
Chạy Unison

Chạy Unison lần đầu tiên để đồng bộ thư mục /kenhgiaiphap của 2 server .

Bên  gkp-A.vn chạy lệnh sau:

(Trước khi chạy ta tạo vài file hay thư mục nào đó trong thư mục /kenhgiaiphap bên 2 server để test thử )

# unison /kenhgiaiphap/ ssh://200.200.200.135//kenhgiaiphap
 

Qua 2  Server ta thấy dữ liệu đã đồng bộ .
 

Tạo 1 Script tự động trả lời các thông số ,các câu hỏi lúc ta chạy lệnh để đồng bộ 
( Thực hiện bên server  kgp-A.vn )

#  vi /root/.unison/default.prf

root = /kenhgiaiphap
root = ssh://200.200.200.135//kenhgiaiphap
auto=true
batch=true


Với mục đích là đồng bộ thư mục trên 2 server cơ bản thì với các thông số trong file/root/.unison/default.prf  như trên là đủ .

Nếu muốn thêm các option khác thì các bạn tìm hiểu thêm qua lệnh : man  unison

Đến đây thì chúng ta có thể chạy Script trên bằng lệnh unison  ko cần thông số gì hết để test thử .

Và tạo Crontab cho hệ thống tự đồng bộ theo thời gian mỗi 5 phút .

# crontab –e

 */5 * * * * /usr/bin/unison &> /dev/null

 

Phan Trọng Hiếu ( Theo Howtoforge )

Related Posts:

  • Linux history command(change HISTSIZE variable) History is a very handy command to see what was typed and executed in a shell for a period of time. For example, you are troubleshooting Linux server and you want to see the last 20 commands executed. $ history 20 Or yo… Read More
  • Install SVN (Subversion) Server on Fedora 19/18, CentOS/Red Hat (RHEL) 6.4/5.9 What is SVN (Subversion)? Subversion is a free/open-source version control system. Subversion manages files and directories, and the changes made to them, over time. This allows you to recover older versions of your data, o… Read More
  • Making a loadbalancer with CentOS using Linux Virtual Server When you are new to all terminology Red Hat is using, it can be challenging to understand what actions to take to create a simple load-balancer with Linux. Here is some information to get you started. Read more on the … Read More
  • Csf tutorial CSF Advanced Allow/Deny Filters In /etc/csf.allow and /etc/csf.deny you can add more complex port and ip filters using the following format (you must specify a port AND an IP address): tcp/udp|in/out|s/d=port|s/d=ip|u=uid… Read More
  • Tạo một file backup Server trên Ubuntu bằng rsync Việc backup dữ liệu quả thật là rất quan trọng. Hôm qua mình phải xử lý 1 cái máy ổ cứng nó đòi tiền bao nhiêu dữ liệu trong đó mém mất. Vì vậy mình nghĩ ngay đến phải làm 1 Server để backup những dữ liệu quan trọng. Thông t… Read More