執行每日/每週/每月備份的最佳方式是什麼?

執行每日/每週/每月備份的最佳方式是什麼?

我目前每隔幾天在 leopard 中運行一個腳本,以確保我已使用以下方法在遠端伺服器上備份我的資料:

#!/bin/bash
rsync -avvz ~/Documents ~/Workspace -e ssh [email protected]:~/Backup/

這種方法有局限性,即我無法查看一些備份前已刪除的檔案。自動化此流程的最佳方法是什麼?

答案1

你能在 Leopard 中設定 cron 作業嗎?

範例 rsync 選項 (-avvz) 不會刪除「遠端」目錄中自早期備份以來已從本機目錄中刪除的檔案。它們應該仍然位於遠端目錄中。

但您的範例令人困惑:您是否將檔案從 ~/Documents 複製到 ~/Workspace 或 myhost.com 上的 ~/Backup/

這可能是 leopard 的特性,但看起來您只是從 ~/Documents 複製到 ~/Workspace 在這種情況下,該行的其餘部分可能會被忽略(並且您不需要呼叫 ssh)

您還應該考慮以 / 結尾來源目錄規範

我同意 Peter 的觀點,即如果您有可用的磁碟空間,輪換備份就很好。

答案2

您正在尋找rdiff 備份。這非常非常好。

答案3

我發現 rsnapshot 軟體包非常好,在所有發行版中都可用,我剛剛將其安裝在我的 Mac 上。

它是 rsync 的包裝器,負責增量備份,包括每小時、每天、每周和每月。

答案4

我每天早上 5:30 運行這個 cron 作業:

#! /bin/bash
echo -n "cleaning remote database...";
ssh wf ./bin/mysql-clean;
echo "Done";
echo -n "running remote backup script...";
ssh wf ./bin/mysql-backup;
echo "Done";
scp wf:~/mysql-`date +%Y-%m-%d`.sql.bz2 /storage/mysql/;

然後在我的網站主機上,我有一個名為 mysql-clean 的腳本,它會清理我的資料庫並刪除所有垃圾。 mysql-backup 基本上只是透過 bzip2 傳輸的 mysqldump,然後根據日期命名。我還有一個腳本,它獲取最新的備份文件,解壓縮它,清除本地 mysql 資料庫,然後插入備份文件中的所有資料。

相關內容