rsnapshot là một tiện ích sao lưu cho các máy chạy Linux. Tiện ích này có sẵn trên hầu hết các bản phân phối Linux, bạn có thể dễ dàng cài đặt thông qua trình quản lý gói. rsnapshot được viết bằng Perl mà không có sự phụ thuộc nào, nó cũng hỗ trợ sao lưu cục bộ và từ xa.
Với rsnapshot, bạn có thể sao lưu thư mục cục bộ của mình. Đối với sao lưu từ xa, rsnapshot sử dụng 'ssh' và 'rsync'.
Trong hướng dẫn này, bạn sẽ học cách sao lưu và khôi phục bằng Rsnapshot trên máy chủ Linux. Bạn sẽ thiết lập rsnapshot để sao lưu cục bộ và sao lưu từ xa. Bạn cũng sẽ học cách thiết lập sao lưu tự động bằng rsnapshot và cron.
Trước tiên, hãy cập nhật chỉ mục gói của bạn bằng lệnh sau. Trong ví dụ này, chúng tôi sẽ sử dụng Debian, bạn có thể sử dụng các bản phân phối dựa trên Debian như Ubuntu, Linux Mint, v.v.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22166%22%3E%3C/svg%3E
Sau khi cập nhật, hãy chạy lệnh bên dưới để cài đặt gói 'rsnapshot'. Nhập 'Y' để xác nhận cài đặt của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22273%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy kiểm tra vị trí nhị phân 'rsnapshot' và phiên bản.
Bạn có thể thấy bên dưới, Rsnapshot 1.4 được cài đặt trong '/usr/bin/rsnapshot'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22442%22%20height=%22157%22%3E%3C/svg%3E
Trên máy chủ 'rsnapshot', hãy tạo khóa công khai và riêng tư SSH bằng lệnh 'ssh-keygen' bên dưới. Nhấn 'ENTER' khi được yêu cầu nhập khóa vị trí và mật khẩu.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22664%22%20height=%22504%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh 'ssh-copy-id' bên dưới để tải khóa công khai SSH lên máy chủ mục tiêu của bạn. Trong ví dụ này, bạn sẽ thực hiện sao lưu từ xa từ máy chủ '192.168.10.41' với xác thực SSH dựa trên khóa và sử dụng người dùng 'alice'.
Nhập mật khẩu của bạn khi được nhắc.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22264%22%3E%3C/svg%3E
Sau khi khóa công khai SSH được tải lên, bạn đã sẵn sàng thiết lập Rsnapshot.
Sao chép cấu hình mặc định của rsnapshot '/etc/rsnapshot.conf' và sửa đổi tệp bằng trình chỉnh sửa 'nano' hoặc 'vim'.
Thay đổi 'snapshot_root' mặc định bằng một thư mục mới. Thư mục này sẽ được sử dụng để lưu trữ dữ liệu sao lưu của bạn.
Bỏ chú thích tùy chọn 'cmd_rsync' và 'cmd_ssh' để bật sao lưu từ xa bằng rsync qua SSH.
Thay đổi mức sao lưu hoặc khoảng thời gian mặc định như sau. Việc đặt tên là tùy chọn, bạn có thể thay đổi khi cần. Vì vậy, đối với ví dụ này, 'daily 6' sẽ tạo các thư mục sao lưu có tên 'daily.0' thành 'daily.5'.
LƯU Ý: Sử dụng TAB thay vì dấu cách, vì điều đó sẽ gây ra lỗi.
Bỏ chú thích tùy chọn 'logfile' để bật nhật ký rsnapshot vào tệp.
Nếu bạn đang chạy máy chủ từ xa với cổng SSH tùy chỉnh, hãy bỏ chú thích tùy chọn 'ssh_args' và thay đổi cổng.
Bây giờ để sao lưu cục bộ, hãy sử dụng cấu hình như thế này. Trong ví dụ này, chúng ta sẽ sao lưu thư mục cục bộ '/home/arvdl' vào 'local'. Đường dẫn đích phải là đường dẫn tương đối, bằng '/srv/backup/name-interval/local'.
Đối với sao lưu từ xa qua SSH và rsync, hãy sử dụng cấu hình như thế này. Trong ví dụ này, chúng tôi sẽ sao lưu các thư mục '/etc' và '/var/www' từ máy chủ từ xa '192.168.10.41' với người dùng SSH 'alice' đến thư mục đường dẫn tương đối 'server1'.
Lưu và thoát tệp khi hoàn tất.
Sau khi bạn đã định cấu hình rsnapshot, hãy kiểm tra và thử nghiệm cấu hình rsnapshot bằng lệnh sau. Nếu bạn cấu hình đúng, bạn sẽ thấy đầu ra 'Cú pháp OK'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22472%22%20height=%22134%22%3E%3C/svg%3E
Để kiểm tra bản sao lưu thủ công, hãy chạy lệnh 'rsnapshot' bên dưới. Đảm bảo thay đổi 'daily' bằng tên bản sao lưu của bạn.
Nếu quá trình hoàn tất, hãy kiểm tra thư mục sao lưu '/srv/backup' bằng lệnh sau. Bạn sẽ thấy một thư mục sao lưu mới 'daily.0' chứa các tệp sao lưu của bạn từ máy chủ cục bộ và từ xa.
Bây giờ hãy chạy lệnh bên dưới để kiểm tra mức sử dụng đĩa bằng rsnapshot.
Trong đầu ra bên dưới, bạn có thể thấy tổng mức sử dụng đĩa cho bản sao lưu rsnapshot là 5MB.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22370%22%20height=%22154%22%3E%3C/svg%3E
Cuối cùng, hãy kiểm tra tệp nhật ký sao lưu '/var/log/rsnapshot.log' để kiểm tra quy trình sao lưu của bạn.
Những thông tin sau đây cho thấy quá trình sao lưu đã thành công, nhưng có một số cảnh báo, chẳng hạn như như quyền bị từ chối khi sao lưu tệp '/etc/shadow'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22320%22%3E%3C/svg%3E
Mở tệp '/etc/cron.d/rsnapshot' bằng trình chỉnh sửa 'nano'. Tệp này là một ví dụ được tạo bởi rsnapshot.
Nhập cấu hình sau để sao lưu tự động qua rsnapshot. Trong ví dụ này, bản sao lưu 'hàng ngày' sẽ chạy hàng ngày, cũng như 'hàng tuần' và 'hàng tháng' trong khoảng thời gian tương ứng của chúng.
Lưu tệp và thoát khỏi trình chỉnh sửa.
Với thao tác này, bản sao lưu tự động của bạn sẽ được chạy qua cron.
Với rsnapshot, bạn có thể sao lưu thư mục cục bộ của mình. Đối với sao lưu từ xa, rsnapshot sử dụng 'ssh' và 'rsync'.
Trong hướng dẫn này, bạn sẽ học cách sao lưu và khôi phục bằng Rsnapshot trên máy chủ Linux. Bạn sẽ thiết lập rsnapshot để sao lưu cục bộ và sao lưu từ xa. Bạn cũng sẽ học cách thiết lập sao lưu tự động bằng rsnapshot và cron.
Điều kiện tiên quyết
Để hoàn thành hướng dẫn này, hãy đảm bảo bạn có những điều sau:- Máy chủ Linux như Debian, Ubuntu, CentOS hoặc bất kỳ bản phân phối nào
- Người dùng không phải root có quyền quản trị viên
- Máy chủ bổ sung tùy chọn để kiểm tra sao lưu từ xa
Cài đặt rsnapshot
rsnapshot là tiện ích sao lưu có sẵn trên hầu hết các bản phân phối Linux. Bạn có thể cài đặt tiện ích này thông qua trình quản lý gói tương ứng. Trong phần này, bạn sẽ cài đặt rsnapshot trên máy chủ Debian. Vì vậy, nếu bạn đang sử dụng một bản phân phối khác, hãy cài đặt nó bằng trình quản lý gói hiện tại của bạn.Trước tiên, hãy cập nhật chỉ mục gói của bạn bằng lệnh sau. Trong ví dụ này, chúng tôi sẽ sử dụng Debian, bạn có thể sử dụng các bản phân phối dựa trên Debian như Ubuntu, Linux Mint, v.v.
Mã:
sudo apt update
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22166%22%3E%3C/svg%3E
Sau khi cập nhật, hãy chạy lệnh bên dưới để cài đặt gói 'rsnapshot'. Nhập 'Y' để xác nhận cài đặt của bạn.
Mã:
sudo apt install rsnapshot
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22273%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy kiểm tra vị trí nhị phân 'rsnapshot' và phiên bản.
Mã:
which rsnapshot
rsnapshot --version
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22442%22%20height=%22157%22%3E%3C/svg%3E
Cấu hình xác thực khóa SSH
Khi thực hiện sao lưu từ xa, bạn phải đảm bảo máy chủ rsnapshot của mình có thể đăng nhập vào máy chủ đích bằng xác thực khóa SSH. Vì vậy, để sao lưu từ xa, bạn phải có những điều sau:- Người dùng sẽ được sử dụng để đăng nhập vào máy chủ đích
- Xác thực dựa trên khóa SSH được bật
Trên máy chủ 'rsnapshot', hãy tạo khóa công khai và riêng tư SSH bằng lệnh 'ssh-keygen' bên dưới. Nhấn 'ENTER' khi được yêu cầu nhập khóa vị trí và mật khẩu.
Mã:
ssh-keygen -t ed25519
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22664%22%20height=%22504%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh 'ssh-copy-id' bên dưới để tải khóa công khai SSH lên máy chủ mục tiêu của bạn. Trong ví dụ này, bạn sẽ thực hiện sao lưu từ xa từ máy chủ '192.168.10.41' với xác thực SSH dựa trên khóa và sử dụng người dùng 'alice'.
Mã:
ssh-copy-id [emailprotected]
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22264%22%3E%3C/svg%3E
Sau khi khóa công khai SSH được tải lên, bạn đã sẵn sàng thiết lập Rsnapshot.
Cấu hình rsnapshot
Trong phần này, bạn sẽ cấu hình rsnapshot cho cả sao lưu cục bộ và sao lưu từ xa. Bạn sẽ sửa đổi cấu hình mặc định '/etc/rsnapshot.conf', thiết lập thư mục sao lưu mặc định, bật tích hợp với SSH và Rsync, thiết lập sao lưu theo khoảng thời gian, sau đó cấu hình sao lưu cục bộ và từ xa.Sao chép cấu hình mặc định của rsnapshot '/etc/rsnapshot.conf' và sửa đổi tệp bằng trình chỉnh sửa 'nano' hoặc 'vim'.
Mã:
sudo cp /etc/rsnapshot.conf /etc/rsnapshot.conf.orig
sudo nano /etc/rsnapshot.conf
Mã:
snapshot_root /data/backup/
Mã:
cmd_rsync /usr/bin/rsync
cmd_ssh /usr/bin/ssh
LƯU Ý: Sử dụng TAB thay vì dấu cách, vì điều đó sẽ gây ra lỗi.
Mã:
retain daily 6
retain weekly 7
retain monthly 4
Mã:
logfile /var/log/rsnapshot.log
Mã:
ssh_args -p 22
Mã:
backup /home/arvdl/ local
Mã:
backup [emailprotected]:/etc/ server1
backup [emailprotected]:/var/www server1
Sau khi bạn đã định cấu hình rsnapshot, hãy kiểm tra và thử nghiệm cấu hình rsnapshot bằng lệnh sau. Nếu bạn cấu hình đúng, bạn sẽ thấy đầu ra 'Cú pháp OK'.
Mã:
rsnapshot configtest
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22472%22%20height=%22134%22%3E%3C/svg%3E
Đang kiểm tra sao lưu rsnapshot thủ công
Bây giờ bạn đã cấu hình rsnapshot, hãy xác minh và kiểm tra bản sao lưu của bạn bằng rsnapshot bằng cách thực hiện sao lưu thủ công, kiểm tra thư mục sao lưu và tệp nhật ký rsnapshot.Để kiểm tra bản sao lưu thủ công, hãy chạy lệnh 'rsnapshot' bên dưới. Đảm bảo thay đổi 'daily' bằng tên bản sao lưu của bạn.
Mã:
rsnapshot daily
Mã:
ls /srv/backup/
Mã:
rsnapshot du
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22370%22%20height=%22154%22%3E%3C/svg%3E
Cuối cùng, hãy kiểm tra tệp nhật ký sao lưu '/var/log/rsnapshot.log' để kiểm tra quy trình sao lưu của bạn.
Mã:
cat /var/log/rsnapshot.log
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22320%22%3E%3C/svg%3E
Sao lưu tự động với Cron
Đối với sao lưu tự động, bạn có thể tích hợp rsnapshot với cron. Ví dụ, bạn sẽ thiết lập cron để sao lưu tự động là 'hàng ngày', 'hàng tuần' và 'hàng tháng'.Mở tệp '/etc/cron.d/rsnapshot' bằng trình chỉnh sửa 'nano'. Tệp này là một ví dụ được tạo bởi rsnapshot.
Mã:
sudo nano /etc/cron.d/rsnapshot
Mã:
0 0 * * * root rsnapshot daily
0 0 * * 0 root rsnapshot weekly
0 0 1 * * root rsnapshot monthly
Với thao tác này, bản sao lưu tự động của bạn sẽ được chạy qua cron.