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ó phụ thuộc, 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ẽ tìm hiểu cách cài đặt và cấu hình Rsnapshot trên máy chủ Rocky Linux 9. Bạn cũng sẽ học cách thực hiện sao lưu tự động bằng Rsnapshot và Cron.
Trước tiên, hãy chạy lệnh bên dưới để thêm kho lưu trữ EPEL (Gói bổ sung cho Enterprise Linux) vào máy chủ Rocky Linux của bạn. Nhập 'Y' để xác nhận và thêm kho lưu trữ EPEL.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22377%22%3E%3C/svg%3E
Sau khi thêm EPEL, hãy chạy lệnh 'dnf' bên dưới để cài đặt gói 'rsnapshot'. Nhập 'Y' để xác nhận cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22440%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy kiểm tra vị trí tệp nhị phân và phiên bản 'rsnapshot' bằng lệnh bên dưới.
Trong kết quả đầu ra bên dưới, bạn có thể thấy rằng 'rsnapshot' 1.4.5 được cài đặt trong '/usr/bin/rsnapshot'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22595%22%20height=%22179%22%3E%3C/svg%3E
Trên máy chủ Rocky Linux của bạn, hãy chạy lệnh 'ssh-keygen' bên dưới để tạo khóa SSH mới.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22657%22%20height=%22592%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 SSH của bạn lên máy mục tiêu. Trong ví dụ này, chúng tôi sẽ sao lưu một số dữ liệu từ máy chủ '192.168.10.50' sang máy chủ Rocky Linux của chúng tôi bằng 'rsnapshot'.
Nhập mật khẩu khi được nhắc. Sau khi tải lên, bạn có thể đăng nhập vào máy chủ đích mà không cần mật khẩu và sẵn sàng thiết lập Rsnapshot.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22255%22%3E%3C/svg%3E
Sao lưu cấu hình mặc định '/etc/rsnapshot.conf' và sửa đổi bằng trình chỉnh sửa 'nano'.
Thêm đường dẫn đích sao lưu của bạn vào tùy chọn 'snapshot_root'. Trong ví dụ này, tất cả các bản sao lưu sẽ được lưu trữ trong thư mục '/data/backup'.
Bỏ chú thích các tùy chọn 'cmd_rsync', 'cmd_ssh', 'cmd_du' và 'cmd_rsnapshot_diff'. Đảm bảo đường dẫn của mọi lệnh là chính xác.
Thay đổi cấu hình 'giữ lại' mặc định thành cấu hình sau. Việc đặt tên là tùy chọn, bạn có thể thay đổi khi cần. Đối với ví dụ này, 'giữ lại hàng ngày 6' sẽ tạo các thư mục sao lưu mới 'daily.0' thành 'daily.5'.
Bỏ ghi chú tùy chọn 'logfile' để bật ghi nhật ký cho Rsnapshot.
Bỏ chú thích 'ssh_args' để truyền lệnh SSH bổ sung. Đặc biệt nếu bạn đang chạy SSH trong một cổng không chuẩn.
Bây giờ hãy thay đổi cấu hình 'sao lưu' như thế này để sao lưu thư mục cục bộ '/home/arvdl'.
Để sao lưu từ xa qua SSH, hãy sử dụng cấu hình như sau. 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ủ '192.168.10.50' đến máy chủ Rsnapshot. Ngoài ra, hãy đảm bảo sử dụng đúng người dùng SSH với xác thực dựa trên khóa SSH.
Khi hoàn tất, hãy lưu tệp và thoát khỏi trình chỉnh sửa.
Cuối cùng, hãy chạy lệnh 'rsnapshot' bên dưới để xác minh cấu hình của bạn. 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=%22501%22%20height=%22130%22%3E%3C/svg%3E
Để sao lưu theo cách thủ công, hãy chạy lệnh 'rsnapshot' theo sau là tên lưu giữ, ví dụ: 'hàng ngày'. Thao tác này sẽ tạo bản sao lưu mới vào thư mục 'snapshot_root'.
Kiểm tra thư mục 'snapshoot_root' để đảm bảo rằng bản sao lưu của bạn đã được tạo. Trong ví dụ này, thư mục 'snapshot_root' là '/data/backup'.
Bây giờ hãy chạy lệnh 'rsnapshot' bên dưới để kiểm tra kích thước bản sao lưu của bạn. Trong ví dụ sau, bản sao lưu duy nhất của các tệp của chúng tôi là '3MB'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22418%22%20height=%22205%22%3E%3C/svg%3E
Cuối cùng, bạn cũng có thể kiểm tra tệp nhật ký Rsnapshot '/var/log/rsnapshot' để nhận thông tin về các hoạt động của Rsnapshot.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22492%22%3E%3C/svg%3E
Tạo tệp cấu hình cron mới '/etc/cron.d/snapshot' bằng trình chỉnh sửa 'nano' sau.
Chèn cấu hình bên dưới để thiết lập crontab cho Rsnapshot. Trong ví dụ sau, bạn sẽ chạy 'rsnapshot daily', 'rsnapshot weekly' và 'rsnapshot monthly'.
Lưu tệp và thoát khỏi trình chỉnh sửa khi hoàn tất.
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ẽ tìm hiểu cách cài đặt và cấu hình Rsnapshot trên máy chủ Rocky Linux 9. Bạn cũng sẽ học cách thực hiện sao lưu tự động bằng Rsnapshot và Cron.
Điều kiện tiên quyết
Trước khi bắt đầu, hãy đảm bảo bạn có những điều sau:- Máy chủ Rocky Linux 9
- Người dùng không phải root có quyền quản trị viên
Cài đặt Rsnapshot
Rsnapshot là tiện ích sao lưu cho hệ điều hành giống Unix. Trên bản phân phối dựa trên RedHat, bạn có thể cài đặt Rsnapshot thông qua kho lưu trữ EPEL (Gói bổ sung cho Enterprise Linux). Vì vậy, đối với bước này, bạn sẽ thêm kho lưu trữ EPEL vào hệ thống của mình, sau đó cài đặt Rsnapshot.Trước tiên, hãy chạy lệnh bên dưới để thêm kho lưu trữ EPEL (Gói bổ sung cho Enterprise Linux) vào máy chủ Rocky Linux của bạn. Nhập 'Y' để xác nhận và thêm kho lưu trữ EPEL.
Mã:
sudo dnf install epel-release
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22377%22%3E%3C/svg%3E
Sau khi thêm EPEL, hãy chạy lệnh 'dnf' bên dưới để cài đặt gói 'rsnapshot'. Nhập 'Y' để xác nhận cài đặt.
Mã:
sudo dnf install rsnapshot nano firewalls
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22440%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy kiểm tra vị trí tệp nhị phân và phiên bản 'rsnapshot' bằng lệnh bên dưới.
Mã:
which rsnapshot
rsnapshot --version
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22595%22%20height=%22179%22%3E%3C/svg%3E
Cấu hình SSH để sao lưu từ xa
Để sao lưu từ xa bằng Rsnapshot qua SSH, bạn phải cấu hình xác thực dựa trên khóa cho máy chủ của mình. Đảm bảo rằng bạn có thể đăng nhập vào máy chủ mục tiêu từ máy chủ Rsnapshot của mình qua khóa SSH. Đối với bước này, bạn sẽ tạo khóa SSH trên máy chủ Rsnapshot rồi tải khóa công khai lên máy chủ sao lưu mục tiêu.Trên máy chủ Rocky Linux của bạn, hãy chạy lệnh 'ssh-keygen' bên dưới để tạo khóa SSH mới.
Mã:
ssh-keygen -t ed25519
- Nhấn ENTER để lưu khóa ở vị trí mặc định tại thư mục '~/.ssh'
- Nhấn ENTER hai lần khi được nhắc nhập mật khẩu
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22657%22%20height=%22592%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 SSH của bạn lên máy mục tiêu. Trong ví dụ này, chúng tôi sẽ sao lưu một số dữ liệu từ máy chủ '192.168.10.50' sang máy chủ Rocky Linux của chúng tôi bằng 'rsnapshot'.
Mã:
ssh-copy-id [emailprotected]
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22255%22%3E%3C/svg%3E
Thiết lập Rsnapshot để sao lưu cục bộ và từ xa
Bây giờ bạn đã định cấu hình xác thực dựa trên khóa SSH, bạn có thể định cấu hình Rsnapshot. Trong ví dụ này, bạn sẽ thiết lập thư mục sao lưu, lưu giữ bản sao lưu, sao lưu các tệp cục bộ, sau đó tạo bản sao lưu từ xa thông qua SSH.Sao lưu cấu hình mặc định '/etc/rsnapshot.conf' và sửa đổi bằng trình chỉnh sửa 'nano'.
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
cmd_du /usr/bin/du
cmd_rsnapshot_diff /usr/bin/rsnapshot_diff
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/ rocky9
backup [emailprotected]:/var/www rocky9
Cuối cùng, hãy chạy lệnh 'rsnapshot' bên dưới để xác minh cấu hình của bạn. 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=%22501%22%20height=%22130%22%3E%3C/svg%3E
Kiểm tra sao lưu bằng Rsnapshot
Tại thời điểm này, bạn đã cấu hình Rsnapshot và tạo bản sao lưu cho máy chủ cục bộ và từ xa. Bây giờ bạn sẽ sao lưu bằng Rsnapshot theo cách thủ công thông qua dòng lệnh 'rsnapshot'. Bạn cũng sẽ kiểm tra kích thước bản sao lưu và kiểm tra tệp nhật ký Rsnapshot.Để sao lưu theo cách thủ công, hãy chạy lệnh 'rsnapshot' theo sau là tên lưu giữ, ví dụ: 'hàng ngày'. Thao tác này sẽ tạo bản sao lưu mới vào thư mục 'snapshot_root'.
Mã:
rsnapshot daily
Mã:
ls /data/backup
Mã:
rsnapshot du
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22418%22%20height=%22205%22%3E%3C/svg%3E
Cuối cùng, bạn cũng có thể kiểm tra tệp nhật ký Rsnapshot '/var/log/rsnapshot' để nhận thông tin về các hoạt động của Rsnapshot.
Mã:
cat /var/log/rsnapshot
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22492%22%3E%3C/svg%3E
Sao lưu tự động với Rsnapshot và Cronjob
Trong phần cuối cùng này, bạn sẽ tìm hiểu cách thiết lập sao lưu tự động với Rsnapshot và Cronjob. Theo cách này, lệnh 'rsnapshot' sẽ chạy định kỳ và tự động thông qua Cron.Tạo tệp cấu hình cron mới '/etc/cron.d/snapshot' bằng trình chỉnh sửa 'nano' sau.
Mã:
sudo nano /etc/cron.d/rsnapshot
Mã:
# Backup on daily
0 0 * * * root rsnapshot daily
# Backup on weekly
0 0 * * 0 root rsnapshot weekly
# backup monthly
0 0 1 * * root rsnapshot monthly