Thứ Hai , Tháng Ba 4 2024

RSYNC Đồng Bộ File Và Thư Mục – LINUX

– “Remote Synchronize – RSYNC” là giao thức sử dụng để đồng bộ dữ liệu, ta có thể sử dụng để backup, đồng bộ dữ liệu giữa máy tính

Rsync ở trong cục bộ một máy linux

– Tạo thư mục backup

[root@linux ~]# mkdir /backup

– Kiểm tra thư mục /home sẽ đồng bộ dữ liệu sang /backup

[root@linux ~]# cd /home
[root@linux home]# ls -l
-rw------- 1 root root 7168 Jun 24 23:06 aquota.group
-rw------- 1 root root 7168 Jun 24 22:55 aquota.user
drwx------. 2 root root 16384 Jun 24 18:12 lost+found
drwx------ 2 quotauser quotauser 4096 Jun 24 22:55 quotauser

– Ta sử dụng câu lệnh “rsync” để backup folder “/home” vào folder “/backup”

[root@linux home]# rsync -auv /home /backup

-a : nghĩa là archive. Options này bao gồm nhiều biến -r, -l, -t, -p, -d
-r : backup recursive. Nghĩa là đồng bộ mọi file và folder trong các folder con
-l : backup link
-t : bảo tồn yếu tố thời gian của file và folder
-p : bảo tồn yếu tố permission của file và folder
-d : các dạng file khác
-u : update nghĩa là các file nào ta đã rsync thì ở các lần hoạt động sau chương trình sẽ không rsync

– Kiểm tra

[root@linux home]# cd /backup
[root@linux backup]# ls
home

=> Sẽ thấy folder home mới

– Thêm biến –delete

[root@linux home]# rsync -auv --delete /home /backup

=> Khi ta sử dụng biến –delete
=> Nếu như ở vị trí source là /home có file hoặc folder đã bị xóa. thì lần back up thứ 2 thêm biến –delete, tại vị trí destination /backup thì file và folder đó sẽ bị xóa theo.

– Đồng bộ từ nhiều source

[root@linux home]# rsync -auv --delete /home1 /home2 /home3 /backup

=> rsyn các folder /home1 /home2 /home3 vào /backup

RSYNC giữa 2 máy thông qua SSHv2

– Kiểm tra địa chỉ của 2 máy tính
+ Backup: 192.168.126.201
+ Server: 192.168.126.208

– Ở máy Backup ta tạo folder

[root@backup ~]# mkdir /backup

– Ở máy Server kiểm tra dữ liệu ta cần Backup

[root@server ~]# cd /home/
[root@server home]# ls
aquota.group aquota.user lost+found quotauser test.txt

– Kiểm tra kết nối SSH từ Backup –> Server

[root@backup ~]# ssh root@192.168.126.208
password: 123456
[root@server ~]# ip addr

=> IP 192.168.126.208 (dang o dong lenh cua may Server)

[root@server ~]# exit

– Sử dụng câu lệnh “Rsync + SSH” tại máy BACKUP để đồng folder /home (từ
địa chỉ 192.168.126.208) về folder /backup (192.168.126.201)

[root@backup ~]# rsync -auv --delete -e ssh root@192.168.126.208:/home/ /backup
password: 123456

+ Kiểm tra

[root@backup ~]# cd /backup/
[root@backup backup]# ls
aquota.group aquota.user lost+found quotauser test.txt

+ xóa hết để thực hành lab phần sau

[root@backup backup]# rm -rf *

– Sử dụng câu lệnh “Rsync + SSH” tại máy Server để đồng bộ folder /home
(192.168.126.208) về folder /backup (192.168.126.201)

[root@samba home]# rsync -auv --delete -e ssh /home/ root@192.168.126.201:/backup
password: 123456

+ Kiểm tra và xóa như trên

RSYNC qua SSHv2 và đăng nhập bằng public/private key

– Tại máy BACKUP tạo ra cặp public/private key

[root@backup backup]# cd
[root@backup ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:kGKtxhn9NYcGUqCFBVvuBvdvJWiDMaNcu+pY9wPRuYU root@backup
The key's randomart image is:
+---[RSA 2048]----+
| .+*oo |
| .O o . . |
| B %. o= . |
| + @.XE+.o |
| B =.So. . |
| . ..o.o o |
| . o. o |
| o o ... |
| ..o .. |
+----[SHA256]-----+

– Copy file “id_rsa.pub” vào máy SERVER bằng câu lệnh “scp”
+ Kiểm tra vị trí lưu file public/private key của máy BACKUP

[root@backup ~]# cd /root/.ssh
[root@backup .ssh]# ls -l
total 12
-rw------- 1 root root 1679 Jun 25 17:08 id_rsa
-rw-r--r-- 1 root root 393 Jun 25 17:08 id_rsa.pub
-rw-r--r-- 1 root root 177 Jun 25 16:23 known_hosts

+ Copy public key sang máy SERVER

[root@backup .ssh]# scp id_rsa.pub root@192.168.126.208:/root
root@192.168.126.208's password:
id_rsa.pub 100% 393 411.8KB/s 00:00

– Chuyển qua giao diện SSH tại máy Server
+ kiểm tra thấy có file id_rsa.pub

[root@server ~]# cd
[root@server ~]# ls

+ tạo thư mục ẩn là .ssh

[root@server ~]# mkdir .ssh

+ Tạo file authorized_keys sang thư mục ẩn .ssh. Ghi public key vào file này

[root@server .ssh]# cd
[root@server ~]# cat id_rsa.pub > .ssh/authorized_keys
[root@server ~]# chmod -R 755 .ssh

=> phân quyền 755 cho folder .ssh

– Tại máy BACKUP kiểm tra kết nối SSH tới máy SERVER và đăng nhập bằng public/private key

[root@backup ~]# cd /root/.ssh
[root@backup .ssh]# ssh -i id_rsa root@192.168.126.208
Last login: Sat Jun 25 16:23:21 2022 from 192.168.126.201

-i : identity (nhan dang)
+ Thoát về

[root@server ~]# exit

– Thực hiện tạo kết nối RSYNC over SSH tại máy BACKUP và quá trình login
này không cần sử dụng xác thực username password

[root@backup ~]# rsync -auv --delete -e ssh root@192.168.126.208:/home/ /backup

– Tạo crontab chạy đồng bộ dữ liệu vào 2h sáng hàng ngày

[root@backup ~]# crontab -e

+ Ghi vào trong file crontab -e:

00 02 * * * rsync -auv --delete -e ssh root@192.168.126.208:/home/ /backup

Về thanhdd