Thứ Tư, 28 tháng 8, 2013

Cách dùng rsync linux để backup

Ta muốn backup trong môi trường linux, có nhiều lệnh hỗ trợ việc này ví dụ như lệnh cpio, tar, rsync, dd… Ở phần này ta sẽ tập trung vào lệnh rsync thông qua các ví dụ bên dưới. Rsync giống như lệnh copy nhưng nó có thêm một số tính năng như copy links, devices, owners, groups, permissions liên quan đến file đó. Rsync sẽ đồng bộ các file và thư mục từ vị trí này đến một vị trí khác và giảm thiểu số lượng data phải copy.

Backup Home directory của user đến một hard disk khác
- Giả sử ta có một máy linux đang hoạt động, ta gán thêm cho nó một hard disk.
- Ta định dạng hard disk này để nó hỗ trợ trên môi trường linux. Tham khảo tại đây.
- Sử dụng lệnh rsync để backup data cho user student. Tất cả các file nằm trong /home/student sẽ được backup ( đồng bộ ) đến vị trí mới là /DATA. Nếu như file hay folder ở trong /home/student bị xóa đi, thì file hay folder đã được sync lần trước trong /DATA vẫn không bị xóa và giữ lại. Ta login vào user student và tạo ra một số file và thư mục theo cấu trúc sau:

[student@vmlinux ~]$ echo "Backup_lan_1" > backup1.txt
[student@vmlinux ~]$ mkdir -p test1/test2
[student@vmlinux ~]$ cd test1/test2
[student@vmlinux test2]$ echo "backup_lan_1" > backup1_1.txt
[student@vmlinux ~]$ cd ~
[student@vmlinux ~]$ ls -lh



Mã:
total 24K
-rw-rw-r-- 1 student student   13 Jan  1 11:22 backup1.txt
drwxr-xr-x 2 student student 4.0K Nov 29 20:36 Desktop
drwxrwxr-x 3 student student 4.0K Jan  1 11:36 test1
[student@vmlinux ~]$ cd test1/test2/
[student@vmlinux test2]$ ls -lh

Mã:
total 8.0K
-rw-rw-r-- 1 student student 13 Jan  1 11:38 backup1_1.txt
+ Nhận xét file backup1.txt được tạo ra vào lúc 11:22
+ Nhận xét cấu trúc folder test1/test2 được tạo ra lúc 11:36
+ Nhận xét file backup1_1 trong test1/test2 được tạo ra lúc 11:38

Ví dụ nếu ta nhập vào câu lệnh bên dưới 

[student@vmlinux test2]$ rsync -au /home/student/ /DATA

-a : nghĩa là archive. Option –a này thay thế cho tất cả các yếu tố mà ta muốn backup của file như sau:
-r : backup recursive (backup toàn bộ file và folder nằm bên dưới thư mục )
- l : backup link
-t : bảo tồn yếu tố thời gian của file và folder
-p : permission của đối tượng. Bao gồm –o quyền owner, -g quyền group owner
-d : các dạng file đặc biệt khác
-u : update nghĩa là bỏ qua không truyền các file, với các file này nó đang có tính chất mới hơn ở chỗ người nhận

- Ta chuyển qua /DATA để kiểm tra

[student@vmlinux DATA]$ ls -lh


Mã:
total 40K
-rw-rw-r-- 1 student student   13 Jan  1 11:22 backup1.txt
drwxr-xr-x 2 student student 4.0K Nov 29 20:36 Desktop
drwx------ 2 student student  16K Jan  1 10:54 lost+found
drwxrwxr-x 3 student student 4.0K Jan  1 11:36 test1
[student@vmlinux DATA]$ cd test1/test2/
[student@vmlinux test2]$ ls -lh

Mã:
total 8.0K
-rw-rw-r-- 1 student student 13 Jan  1 11:38 backup1_1.txt
==> Tất cả các file nằm bên trong folder /home/student được sync vào trong /DATA: bao gồm file backup1.txt, cấu trúc folder test1/test2/ , và file backup1_1.txt

Nhưng nếu ta nhập lệnh bên dưới thì sẽ cho ra một kết quả khác một chút.

[student@vmlinux ~]$ rsync -au /home/student /DATA
Sau đó ta vào /DATA để kiểm tra

[student@vmlinux DATA]$ ls -lh
Mã:
total 48K
-rw-rw-r--  1 student student   13 Jan  1 11:22 backup1.txt
drwxr-xr-x  2 student student 4.0K Nov 29 20:36 Desktop
drwx------  2 student student  16K Jan  1 10:54 lost+found
drwx------ 16 student student 4.0K Jan  1 11:36 student
drwxrwxr-x  3 student student 4.0K Jan  1 11:36 test1
==> Tạo thêm folder student và có chứa bên trong cấu trúc file vào thư mục của /home/student gốc

- Tiếp tục ta thử thay đổi nội dung các file backup1.txt và backup1_1.txt và thực hiện lại quá trình backup

[student@vmlinux ~]$ echo "Backup_lan_2" >> backup1.txt
[student@vmlinux ~]$ echo "Backup_lan_2" >> test1/test2/backup1_1.txt
[student@vmlinux ~]$ ls -lh



Mã:
total 24K
-rw-rw-r-- 1 student student   26 Jan  1 15:11 backup1.txt
drwxr-xr-x 2 student student 4.0K Nov 29 20:36 Desktop
drwxrwxr-x 3 student student 4.0K Jan  1 11:36 test1
==> Thời gian của file backup1.txt là 15:11
==> Tương tự ta có thể kiểm tra các thông số thuộc tính của file backup1_1.txt

Ta thực hiện lại quá trình backup và kiểm tra lại các thông số, nội dung của các file được được backup

[student@vmlinux ~]$ rsync -au /home/student/ /DATA/
[student@vmlinux DATA]$ ls -l

Mã:
total 48
-rw-rw-r--  1 student student    26 Jan  1 15:11 backup1.txt
drwxr-xr-x  2 student student  4096 Nov 29 20:36 Desktop
drwx------  2 student student 16384 Jan  1 10:54 lost+found
drwx------ 16 student student  4096 Jan  1 11:36 student
drwxrwxr-x  3 student student  4096 Jan  1 11:36 test1
==> Thông số thời gian của file backup1.txt đã được thay đổi thành 15:11

[student@vmlinux DATA]$ cat backup1.txt 
Backup_lan_1
Backup_lan_2

==> Nội dung của file cũng đã thay đổi.

Không có nhận xét nào:

Đăng nhận xét