Hướng dẫn đồng bộ dữ liệu bằng Rsync trên Centos

Nội dung

Mô hình:

Server chính: 192.168.1.50
Server phụ: 192.168.1.51

Yêu cầu đặt ra
:
Đồng bộ hóa dữ liệu một cách tự động thư mục /var/www/html/abc.com/images từ server chính sang server phụ

Các bước thực hiện như sau:

1. Cài đặt rsync
: Thực hiện trên cả server chính lẫn server phụ

yum install rsync

2. Tạo tài khoản thực hiện rsync: Thực hiện trên server chính bằng quyền root. Ví dụ ở đây mình tạo tài khoản tên là syntest

useradd -d /home/syntest -m -s /bin/bash syntest

Lệnh trên sẽ tạo tài khoản syntest với thư mục gốc là /home/syntest và login ở chế độ /bin/bash. Sau đó, ta tiến hành đặt mật khẩu cho tài khoản syntest bằng lệnh:

passwd syntest

3. Thử rsync: Thực hiện trên server phụ bằng quyền root

rsync -avz -e ssh syntest@192.168.1.50:/var/www/html/abc.com/images /var/www/html/abc.com/

Lệnh trên yêu cầu bạn nhập mật khẩu của tài khoản syntest. Sau khi thực hiện thành công, bạn vào thư mục /var/www/html/abc.com thuộc server phụ thì sẽ thấy thư mục images đã được copy sang.

4. Tạo key xác thực để không cần nhập mật khẩu khi thực hiện rsync: Thực hiện trên server phụ bằng quyền root

mkdir /root/rsync
ssh-keygen -t dsa -b 1024 -f /root/rsync/mirror-rsync-key

Bạn sẽ thấy các kết quả như sau. Lưu ý khi yêu cầu nhập passphrase, bạn không cần điền gì cả chỉ cần nhấn Enter

Generating public/private dsa key pair.
Enter passphrase (empty for no passphrase): [press enter here]
Enter same passphrase again: [press enter here]
Your identification has been saved in /root/cron/mirror-rsync-key.
Your public key has been saved in /root/cron/mirror-rsync-key.pub.
The key fingerprint is:
68:95:35:44:91:f1:45:a4:af:3f:69:2a:ea:c5:4e:d7 root@mirror

Tiếp theo ta chép public key sang server chính

scp /root/rsync/mirror-rsync-key.pub syntest@192.168.1.50:/home/syntest/


5. Cấu hình để dịch vụ SSH chấp nhận kiểu chứng thực bằng key
: Thực hiện trên server chính bằng quyền root

vi /etc/ssh/sshd_config

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

6. Cấu hình server chính: Thực hiện trên server chính bằng quyền syntest

mkdir ~/.ssh
chmod 700 ~/.ssh
mv ~/mirror-rsync-key.pub ~/.ssh/
cd ~/.ssh
touch authorized_keys
chmod 600 authorized_keys
cat mirror-rsync-key.pub >> authorized_keys

Các lệnh trên dùng để chèn nội dung của mirror-rsync-key.pub vào tập tin /home/syntest/.ssh/authorized_keys. Nội dung của tập tin authorized_keys sẽ tương tự như bên dưới:

ssh-dss AAAAB3NzaC1kc3MAAA[...]lSUom root@
mirror

7. Thử nghiệm rsync bằng key: Thực hiện trên server phụ bằng quyền root

rsync -avz --delete -e "ssh -i /root/rsync/mirror-rsync-key" syntest@192.168.1.50:/var/www/html/abc.com/images /var/www/html/abc.com

Nếu thành công thì tiến trình đồng bộ dữ liệu sẽ được thực thi mà không yêu cần bạn nhập mật khẩu

8. Lập lịch để chạy đồng bộ tự động: Thực hiện trên server phụ bằng quyền root

crontab -e

Và nhập vào nội dung như sau:

*/5 * * * * /usr/bin/rsync -avz --delete -e "ssh -i /root/rsync/mirror-rsync-key" syntest@192.168.1.50:/var/www/html/abc.com/images /var/www/html/abc.com/

Done

Anthony Nguyễn

Cây bút chính tại VietnamTutor

Bài viết cùng chuyên mục

Prompt vibe coding: mẫu brief để AI hiểu rõ sản phẩm

Prompt vibe coding hiệu quả bắt đầu từ một brief rõ, không phải một câu lệnh dài. Mẫu này giúp bạn mô tả sản phẩm, giới

WordPress cho developer 2026: những thay đổi cần kiểm tra

Bài viết tóm tắt các thay đổi WordPress cho developer 2026 đáng chú ý trong tháng 5: Gutenberg, REST API, block editor, theme và kiểm thử

@wordpress/build là gì? Tooling mới cho plugin WordPress

@wordpress/build là hướng tooling mới cho plugin WordPress: build nhanh hơn, convention-based, hỗ trợ script modules và tự tạo file PHP registration.

Docker sandbox AI coding agent: cấu hình an toàn

Bài viết hướng dẫn lập trình viên cấu hình Docker sandbox AI coding agent để giảm rủi ro khi agent đọc repo, sửa file và chạy

Vibe coding và nợ kỹ thuật thầm lặng: kiểm soát bằng kỹ thuật ngữ cảnh

Vibe coding tăng tốc nhưng âm thầm tích lũy nợ kỹ thuật. Bài này giải thích vì sao và cách context engineering giúp bạn giữ codebase

Git stash: lưu tạm công việc dở và khôi phục đúng lúc

Git stash cho phép lưu tạm các thay đổi chưa commit để chuyển sang task khác, rồi khôi phục lại đúng lúc — tránh commit dở

Git rebase bị conflict: cách sửa hoặc abort an toàn

Hướng dẫn xử lý git rebase bị conflict: cách kiểm tra file lỗi, sửa conflict marker, tiếp tục rebase, abort an toàn và khi nào không

Bảo mật vibe coding: đừng để AI sinh lỗ hổng website

Bảo mật vibe coding không chỉ là quét lỗi sau khi AI viết code. Bài viết đưa ra checklist kiểm soát secret, prompt injection, dependency, auth

Kiểm thử code do AI tạo: danh sách kiểm tra trước khi deploy

Code do AI tạo cần được kiểm thử theo nhiều lớp trước khi lên website thật. Checklist này giúp bạn kiểm tra chức năng, bảo mật,

Lỡ push .env lên Git: cách xử lý secret bị lộ

Lỡ push .env lên Git không chỉ là lỗi xóa file. Hãy revoke hoặc rotate secret trước, rồi dọn Git history và ngăn sự cố lặp

Quy trình vibe coding 7 bước: từ ý tưởng đến prototype

Quy trình vibe coding hiệu quả bắt đầu từ giả thuyết kinh doanh, không phải prompt dài. Bài viết hướng dẫn 7 bước từ brief, dữ

Vibe coding cho doanh nghiệp: việc nào nên làm bằng AI?

Vibe coding cho doanh nghiệp hữu ích khi cần thử prototype, dashboard hoặc automation nhỏ. Bài viết giúp bạn phân loại use case theo mức rủi