本指南介紹了 Rsnapshot 是什麼、如何在 Linux 上安裝 Rsnapshot 以及如何使用 Rsnapshot 在 Linux 上設置備份服務器。
內容
1.首先
快照 基於文件系統快照的實用程序 同步 它可在 Linux 和類 Unix 操作系統上使用。這使得通過 ssh 定期拍攝本地和遠程機器的快照變得很容易。
rsnapshot 的好處是它被廣泛使用。 硬鏈接 只要有可能,您就可以顯著減少所需的磁盤空間。
由於 rsnapshot 只保存固定數量的快照,因此使用的磁盤空間不會持續增加。
Rnapshot 是一個免費的開源備份應用程序,支持增量備份。寫的很完整 perl它應該適用於大多數類 Unix 系統。
讓我們看看如何使用 Rsnapshot 在 Linux 上輕鬆安裝、配置和設置備份服務器。
2.在Linux上安裝Rsnapshot
Rsnapshot 被打包用於許多 Linux 發行版。
在 Alpine Linux 上安裝 Rsnaphot。
$ sudo apk add rsnapshot rsync
為 Arch Linux、EndeavourOS 和 Manjaro Linux 安裝 Rsnapshot。
$ sudo pacman -S rsnapshot rsync
在 Debian、Ubuntu、Linux Mint 和 Pop_OS 上安裝 Rsnapshot! :
$ sudo apt install rsnapshot rsync
在 CentOS、Fedora、RHEL、AlmaLinux、RockyLinux 上安裝 Rsnapshot。
Rsnapshot 在 CentOS、RHEL、AlmaLinux 和 RockyLinux 等企業操作系統的默認存儲庫中不可用。必須啟用 [EPEL] 用於安裝 Rsnapshot 的存儲庫。
$ sudo dnf install epel-release
然後使用以下命令安裝 Rsnapshot:
$ sudo dnf install rsnapshot rsync
在 openSUSE 上安裝 Rsnapshot。
$ sudo zypper install rsnapshot rsync
3. 在 Linux 上使用 Rsnapshot 設置備份服務器
本指南使用兩個測試系統。
一個是運行 AlmaLinux8 的備份服務器,另一個充當客戶端系統。客戶端正在運行 Fedora 34 桌面。
備份服務器和客戶端的詳細信息如下所示。
備份服務器:
- 你 :AlmaLinux8 64位最低系統
- IP地址 : 192.168.122.25/24
- 快照根目錄 : / 快照備份
- 要備份的目錄 : / 主頁 / ostechnix / 數據 /
客戶:
- 你 : Fedora 工作站 34
- IP地址 : 192.168.225.37/24
- 要備份的目錄 :/首頁/sk/數據/
3.1。在備份服務器上設置無密碼的 SSH 身份驗證
要通過 SSH 備份遠程客戶端系統上的文件,您需要以下內容: 設置無需密碼的 SSH 身份驗證 對於遠程客戶端系統,備份自動連接到客戶端系統,無需密碼,並備份客戶端數據。
登錄為 root
使用用戶和備份服務器系統創建 SSH 密鑰對。
# ssh-keygen
請不要輸入密碼讓這些系統無需用戶干預即可相互連接。
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:k/yIpwuk2lqEVxW4O0/6evTjquxCcGffQU0Kgm1ZvPk [email protected] The key's randomart image is: +---[RSA 3072]----+ | o.==. o. | | . =o..... | | ... +. | |....+ o... | |.ooo.o oS. | | o.oo +.E+ | | .o .*..o . | | +....ooo | |o..o===+.. | +----[SHA256]-----+
然後將 SSH 公鑰複製到所有遠程客戶端系統。
# ssh-copy-id [email protected]
交換 sk
什麼時候 192.168.225.37
上述命令使用遠程系統的用戶名和 IP 地址。輸入客戶端系統用戶密碼以復制公鑰文件。
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys [email protected]'s password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh '[email protected]'" and check to make sure that only the key(s) you wanted were added.
這裡, 192.168.225.37 遠程客戶端系統(即 Fedora 桌面)的 IP 地址。
您現在可以在沒有密碼的情況下通過 SSH 進入客戶端系統。
重複上述命令將 ssh 公鑰複製到所有客戶端系統並設置無密碼身份驗證。
接下來,您需要配置備份服務器。
3.2. Rsnapshot 備份服務器配置
創造 根備份目錄 保存服務器和客戶端系統的所有備份。
我將其用於本指南的目的 /rsnapbackup/
作為根備份目錄。這是您要保存所有備份的目錄。
您可以定義您選擇的位置以保存備份。
使用以下命令在備份服務器上創建根備份目錄:
# mkdir /rsnapbackup
接下來,您需要編輯和更新根備份目錄、要備份的目錄和 Rsnapshot 默認配置文件的備份間隔。 /etc/rsnapshot.conf
..
始終建議在編輯配置之前備份默認配置文件,以防您需要重新配置 rsnapshot。
# cp /etc/rsnapshot.conf /etc/rsnapshot.conf.bak
然後使用以下命令編輯 rsnapshot 配置文件:
# nano /etc/rsnapshot.conf
默認設置應該可以正常工作。您需要做的就是定義備份目錄和備份間隔。
筆記: 請注意,您需要指定 結束斜線 在目錄名稱的末尾 /etc/rsnapshot.conf
文檔。例如,您需要指定目錄名稱,如下所示: /rsnapbackup/
, 但 /rsnapbackup
..返回, 您需要在元素/字段之間使用製表符(而不是空格)..
首先,讓我們設置根備份目錄。這是一個定義文件系統備份保存位置的目錄。在我們的例子中,將備份保存到 /rsnapbackup/
目錄。
# All snapshots will be stored under this root directory. # snapshot_root /rsnapbackup/
再次, 使用 Tab 鍵 之間 snappaper_root 元素和備份目錄。
筆記: R快照 數字 通過 SSH 支持遠程快照路由。
向下滾動一點並確保下一行(以粗體標記)未註釋。
[...] ################################# # EXTERNAL PROGRAM DEPENDENCIES # ################################# # LINUX USERS: Be sure to uncomment "cmd_cp". This gives you extra features. # EVERYONE ELSE: Leave "cmd_cp" commented out for compatibility. # # See the README file or the man page for more details. # cmd_cp /usr/bin/cp # uncomment this to use the rm program instead of the built-in perl routine. # cmd_rm /usr/bin/rm # rsync must be enabled for anything to work. This is the only command that # must be enabled. # cmd_rsync /usr/bin/rsync # Uncomment this to enable remote ssh backups over rsync. # cmd_ssh /usr/bin/ssh # Comment this out to disable syslog support. # cmd_logger /usr/bin/logger # Uncomment this to specify the path to "du" for disk usage checks. # If you have an older version of "du", you may also want to check the # "du_args" parameter below. # cmd_du /usr/bin/du [...]

接下來,您需要定義備份間隔。
######################################### # BACKUP LEVELS / INTERVALS # # Must be unique and in ascending order # # e.g. alpha, beta, gamma, etc. # ######################################### retain alpha 6 retain beta 7 retain gamma 4 #retain delta 3

這裡, 保持阿爾法 6 每次 rsnapshot 阿爾法 運行時,會創建一個新快照,輪換舊快照,最後 6 個備份保存在一個名為 . alpha.0
, alpha.1
… alpha.5
Rsnapshot 根目錄。下次運行命令時 alpha.5
該目錄將被刪除。
同樣,當我們調用 rsnapshot beta
創建一個新快照並每次輪換舊快照以保留最後 7 個備份(delta.0-delta.6)
筆記, alpha
, beta
, gamma
, 什麼時候 delta
只需定義備份間隔的名稱。您還可以定義自己的間距。
例如,您可以將默認備份級別替換為有意義的名稱,例如:
retain hourly 24 retain daily 7 retain weekly 4 retain monthly 12
打電話時 rnsapshot hourly
將會 <rsnapshot-root>/hourly.0/
目錄。每次運行此命令時,最多將繼續創建一個新目錄。 <rsnapshot-root>/hourly.23/
..
對於每日、每周和每月備份也是如此。
然後,如果要設置 Rsnapshot 日誌文件,請取消註釋下一行。
logfile /var/log/rsnapshot
如果你有 更改 SSH 默認端口您必須取消註釋此行並在此處輸入有效的端口號。
ssh_args -p 2222
最後,您需要定義要備份的目錄。 在 rsnapshot 配置文件中找到以下指令並設置備份目錄的位置。
############################### ### BACKUP POINTS / SCRIPTS ### ############################### # LOCALHOST backup /home/ostechnix/data/ myserverbackup/
在這裡,您要備份的內容 /home/ostechnix/data/
保存到目錄 /rsnapbackup/myserverbackup/
目錄。
筆記: 請注意,您沒有指定完整路徑(即 /rsnapbackup/myserverbackup/
) 有了上面的配置。那是因為前面提到了根備份目錄。因此,您無需在此處指定 Rsnapshot 根目錄。
同樣,為遠程客戶端系統定義一個備份位置。
# REMOTEHOST backup [email protected]:/home/sk/data/ myclientbackup/
這裡我們備份遠程客戶端系統的內容 /home/sk/data/
保存到目錄 /rsnapbackup/myclientbackup/
備份服務器目錄。
再次注意,您沒有指定完整路徑 (/rsnapbackup/myclientbackup/
) 有了上面的配置。因為我定義了根備份目錄。

保存並關閉 /etc/rsnapshot.conf
文檔。
進行所有更改後,運行以下命令以驗證配置文件在語法上是否有效。
$ rsnapshot configtest
如果一切順利,您應該會看到以下輸出:
Syntax OK
3.3. 開始備份
通過運行以下命令,使用 Rsnapshot 手動啟動備份:
# rsnapshot alpha
第一次備份可能需要幾分鐘到幾小時,具體取決於備份的大小。 後續備份要快得多,因為 Rsnapshot 只備份差異。
同樣,您可以啟動其他備份級別。
# rsnapshot beta
# rsnapshot gamma
# rsnapshot daily
3.4. 檢查和顯示備份
確保備份實際存儲在備份服務器的根備份目錄中。
# ls /rsnapbackup/
您應該看到以下輸出:
alpha.0
檢查內容 alpha.0
目錄:
# ls /rsnapbackup/alpha.0/
可以看到自動創建了兩個目錄,一個用於本地備份(myserverbackup),一個用於遠程系統(myclientbackup)。
myclientbackup myserverbackup
要檢查客戶端系統的備份,請運行以下命令:
# ls /rsnapbackup/alpha.0/myclientbackup/
檢查服務器系統(本地系統)的備份。
# ls /rsnapbackup/alpha.0/myserverbackup/

每次 Rnaspshot 運行時,它都會創建一個類似於以下內容的新目錄: alpha.0
, alpha.1
取決於您配置的保留級別的數量,例如。
# ls /rsnapbackup/ alpha.0 alpha.1
這個 alpha.0
該目錄包含最新的備份。
3.5. 定時備份
您不必每次都運行 rsnapshot 命令來進行備份。只需定義 定時任務 定期自動執行備份作業。
為此,請為 rsnapshot 創建一個新的 cron 作業文件。
# nano /etc/cron.d/rsnapshot
添加以下行。
0 */4 * * * /usr/bin/rsnapshot alpha 50 23 * * * /usr/bin/rsnapshot beta 00 22 1 * * /usr/bin/rsnapshot delta
第一行顯示有六個 α 每日快照(0、4、8、12、16 和 20 小時), 測試版 每天晚上 11:50 拍攝的快照,以及 三角洲 快照將在每個月的第一天晚上 10 點拍攝。您可以根據自己的意願調整時間。保存並關閉文件。
完成!從現在開始,Rsnapshot 將在定義的時間自動備份您的數據。
有關更多信息,請參見手冊頁。
# man rsnapshot
4.恢復文件
文件恢復很容易!如果你有 sudo
還 root
要訪問備份服務器,只需從 Rsnapshot 根目錄複製文件。 /rsnapbackup/
..
五。結論
在 Linux 上使用 Rsnapshot 設置備份服務器並不困難。初始設置可能看起來很困難並且可能很耗時。但是,如果您正確配置了 Rsnapshot 備份服務器,則無需用戶干預即可開箱即用。
資源:
- 快照網站
- RsnapshotGitHub 存儲庫
相關閱讀:
- 如何使用 Rsync 備份你的整個 Linux 系統
- 如何在 Linux 上使用 Rsync 備份文件和目錄
- 如何在 Linux 上使用 DejaDup 備份和恢復文件
- 如何使用 timeshift 備份和恢復你的 Linux 系統
- 如何在 Linux 上使用 Unison 同步文件
- 如何在 Linux 上同步本地和遠程目錄
- 如何使用 Zaloha.sh 同步文件和目錄
- CYA-Linux 系統快照和恢復實用程序
- Restic-快速、安全、高效的備份應用
Backup Server Backup Tool 命令行實用程序 LinuxLinux Linux Backup Tool Management OpensourcePerlRsnapshotRsyncSetup 在 Backup Server Linux 上使用 Rsnapshot