如何建立本地備份?

如何建立本地備份?

我有一個 Linux (Ubuntu 12.04) Web 伺服器,我想建立一個 cronjob 來在本機(在同一台機器上)產生差異備份。

那可能嗎?對於差異,我的意思是第一次它複製所有內容,但接下來的時間它只複製新檔案。但我也希望有很多時間點,我的意思是至少 3 或 4 個備份,我可以從中恢復所有內容。

我已經檢查過此頁面,但有太多不同的工具,我想每個工具都有自己的陷阱:https://help.ubuntu.com/community/BackupYourSystem#Types_of_Backup

例如,我被告知存儲 .tar.gz 有大小限制。

如果您有任何簡單的建議,即使不是差異化的,也歡迎。

答案1

假設有一個備份磁碟/media/mydisk並且我想要備份/home/user,這個小腳本會讓你保留10個歷史備份,但只保留不同的檔案一次以上。

這需要備份磁碟使用 POSIX 檔案系統進行格式化,例如 Ext4、XFS 或其他,但是ntfs,也不胖的!

#!/bin/bash
backRepo=/media/mydisk
backSrce=/home/user
backDest=home
backCopy=copy
backCount=9

[ -d "$backRepo/$backDest" ] || mkdir "$backRepo/$backDest"

cd $backSrce || exit 1
rsync -ax --delete --exclude '*~' --exclude '.DStore' . "$backRepo/$backDest/."

cd $backRepo
[ -d "$backCopy.$backCount" ] && rm -fR "$backCopy.$backCount"
for ((i=$backCount;i--;));do
    [ -d "$backCopy.$i" ] && mv "$backCopy.$i" "$backCopy.$((i+1))"
  done
((i++))

cp -al $backDest $backCopy.$i

此 ( cp -al) 建立文件的硬連結而不是複製它。所以沒有更多的空間被使用。

Rsync 將重新創造(寫入時複製)每個修改的文件,因此輪換備份保留舊版本。

答案2

同步是一個很棒的檔案複製工具,它可以只複製檔案中的更改位,並且可以在覆蓋之前備份目標檔案。

您可以輕鬆編輯主備份,使其定期crontab運行。rsync然後您可以複製更改的檔案的備份,您將有更多的時間點。或者您可以在運行之前複製備份的數據,rsync以獲得每個時間點的完整影像。

除非您稍後要將文件複製到其他地方,否則我認為沒有必要使用tar.

相關內容