Hướng dẫn đồng bộ dữ liệu mysql rsync centos 7
Rsync (remote sync) là công cụ đồng bộ file, thư mục của Linux. Nó sử dụng thuật toán khi copy dữ liệu sao cho dữ liệu phải copy là nhỏ nhất (chỉ copy những gì thay đổi giữa nguồn và gốc), khi đồng bộ nó giữ nguyên mọi thuộc tính của file, thư mục (từ chủ sở hữu, quyền truy cập file ...). Mặc định hầu hết các bản phân phối Linux có sẵn công cụ này, nếu chưa có thì cài vào: Show TRÊN CENTOS/RED HATyum install rsyncTRÊN UBUNTUapt-get install rsync
rsync -a thưmục_nguồn thư_mụcđíchGiả sử trên máy chúng ta có thư mục rsync -a thưmục_nguồn thư_mụcđích5 trong nó chứa nhiều file, thư mục con. Giờ muốn đồng bộ toàn bộ nội dung thư mục rsync -a thưmục_nguồn thư_mụcđích6 vào một thư mục ở vị trí khác là rsync -a thưmục_nguồn thư_mụcđích7 (2 thư mục này cùng nằm trên một hệ thống - 1 máy), thì thực hiện lệnh sau: rsync -a dir1/ dir2Tham số rsync -a thưmục_nguồn thư_mụcđích8 (Archive) cho biết sẽ đồng bộ tất cả các file, thư mục con trong dir1. Nếu muốn rsync -a thưmục_nguồn thư_mụcđích9 kiểm tra thông tin rsync -a thưmục_nguồn thư_mụcđích6, rsync -a thưmục_nguồn thư_mụcđích7 trước khi thi hành thì thêm thiết lập rsync -a dir1/ dir22, nếu muốn quá trình đồng bộ hiện thị thông tin thêm rsync -a dir1/ dir23 Ví dụ muốn đồng bộ sử dụng cả ba thiết lập trên rsync -anv dir1/ dir2Rsync - Đồng bộ giữa 2 máy LinuxNếu một máy remote linux(một server, vps nào đó của bạn) có địa chỉ rsync -a dir1/ dir24, có cho phép bạn kết nối rsync -a dir1/ dir25 bàng Private Key (Cách kết nối SSH bằng Private Key kết nối SSH bằng Private Key). Ví dụ, cho phép gõ lệnh sau để kết nối SSH # Kết nối ssh bằng Private Key đến máy địa chỉ IP, bằng user root ssh root@IPLúc này trên máy remote có thư mục rsync -a dir1/ dir26 buốn đồng bộ xuống máy local ở đường dẫn /home/dir1_backup, thì gõ lệnh sau: rsync -anv root@IP:/home/dir1 /home/dir1_backupTương tự như vậy, nếu theo chiều ngược lại muốn thư mục ở local đồng bộ lên server (remote) thì thay thư mục nguồn là ở máy local, đích là máy remote rsync -anv /home/dir1_backup root@IP:/home/dir1Rsync - Đồng bộ giữa Linux - macOS
macOS to Linuxrsync --partial -avz path_on_mac root@ip:/path_on_linux Linux to macOSrsync --partial -avz root@ip:/path_on_linux path_on_mac Rsync - Vài thiết lập bổ sung
Ví dụ đồng bộ thư mục rsync -anv dir1/ dir23 về thư mục rsync -anv dir1/ dir24 của máy local, bên trong thư mục đó có thư mục rsync -anv dir1/ dir25 sẽ không đồng bộ, quá trình đồng bộ được hiện thị % rsync -aP root@IP:/home/dir1/ /home/backup --exclude=/home/dir1/dir100rsync --human-readable --partial -avz /path/local remote:/path --delete Rsync - Đồng bộ thư mục Windows/Linux
rsync -anv dir1/ dir26 là công cụ cực kỳ hữu hiệu nếu bạn làm việc giữa các hệ thống Linux, nó không có trên Windows. Nhưng tình huống có thể như sau: Có một thư mục trên server Linux, rsync -a dir1/ dir26, bạn muốn đồng bộ thư mục đó về máy Windows lưu ở thư mục rsync -anv dir1/ dir28 hoặc ngược lại, thì làm điều đó như thế nào với rsync -anv dir1/ dir26. Có thể cài máy ảo bằng Virtual Box sau đó cài một hệ điều hành Linux như CentOS, Ubuntu, rồi chia sẻ folder máy host Windows và máy ảo Linux, từ máy ảo Linux chạy lệnh Rsync đồng bộ vào thư mục chia sẻ này. Nếu làm cách này quá trình cài đặt mất vài tiếng, và khá phức tạp. Cách đơn giản hơn là tạo môi trường chạy lệnh Linux bằng # Kết nối ssh bằng Private Key đến máy địa chỉ IP, bằng user root ssh root@IP0 Sử dụng Docker chạy Ubuntu trên WindowsNếu chưa có Docker, Vào trang Docker Destop, tải về và cài đặt nó trên Windows! Sau khi có # Kết nối ssh bằng Private Key đến máy địa chỉ IP, bằng user root ssh root@IP0 ở Windows mở # Kết nối ssh bằng Private Key đến máy địa chỉ IP, bằng user root ssh root@IP2 ( # Kết nối ssh bằng Private Key đến máy địa chỉ IP, bằng user root ssh root@IP3 nhưng khuyến khích dùng # Kết nối ssh bằng Private Key đến máy địa chỉ IP, bằng user root ssh root@IP4), chạy các lệnh đề tạo môi trường Linux như sau: Tải về # Kết nối ssh bằng Private Key đến máy địa chỉ IP, bằng user root ssh root@IP5 Ubuntu (Phiên bản Mini Ubuntu cho Docker) rsync -a thưmục_nguồn thư_mụcđích0 Kiểm tra xem tên # Kết nối ssh bằng Private Key đến máy địa chỉ IP, bằng user root ssh root@IP5 ubuntu có trong hệ thống Docker chưa rsync -a thưmục_nguồn thư_mụcđích1 Chạy một bản # Kết nối ssh bằng Private Key đến máy địa chỉ IP, bằng user root ssh root@IP7 (tạo Container cụ thể), hệ điều hành này sẽ thiết cấu hình chia sẻ thư mục Windows rsync -anv dir1/ dir28 (nhớ phải có thư mục này trên Windows) và gắn vào vị trí # Kết nối ssh bằng Private Key đến máy địa chỉ IP, bằng user root ssh root@IP9 rsync -a thưmục_nguồn thư_mụcđích2 Sau lệnh trên, bạn đã tạo ra một container đang chạy hệ điều hành Ubuntu và đang vào tương tác với nó bằng dòng lệnh. Lúc này từ Ubuntu mọi thay đổi trong thư mục rsync -anv root@IP:/home/dir1 /home/dir1_backup0 sẽ chính là thư mục rsync -anv root@IP:/home/dir1 /home/dir1_backup1 của máy host Windows! Vì Ubutun trên là cơ bản cho Docker, nên cần cài các thành phần theo nhu cầu làm việc rsync -a thưmục_nguồn thư_mụcđích3 Có SSH rồi, cấu hình để truy cập được đến Remote bằng SSH (Xem SSH Private Key) Giờ chỉa việc Rsync máy server remote với Ubuntu vào thư mục # Kết nối ssh bằng Private Key đến máy địa chỉ IP, bằng user root ssh root@IP9 rsync -a thưmục_nguồn thư_mụcđích4 Và kết quả Rsync sẽ lưu chính trong thư mục máy host Windows, rsync -anv dir1/ dir28. Bạn cũng có thể Resync từ local lên remote theo chiều ngược lại |