Backup

如何使用 rsync 備份整個文件系統 - 包含/排除規則文件

  • August 21, 2010

我正在嘗試為我的 FreeBSD 伺服器設置 rsync 備份。

我整理了一個看起來像這樣的 rsync-command:

rsync -avzhe ssh --progress --delete --delete-excluded \
--exclude-from=/root/rsync-excludes \
-e ssh / backup@my.backup.box:Backups/location

我的/root/rsync-excludes文件如下所示:

- *~
+ /root
+ /usr/home
+ /usr/srv
+ /etc
+ /usr/local/etc
+ /var/backups
+ /usr/local/pgsql/backups
- /root/.my.cnf
- /*

但由於某種原因,它只備份 /etc 和 /root,而忽略了其他文件。有人可以解釋為什麼嗎?

解決方案

根據 Gilles 的回答,我想通了,我的配置現在看起來像這樣:

- *~
+ /etc
+ /root
+ /usr/
+ /usr/home
+ /usr/local/
+ /usr/local/etc
+ /usr/local/git
+ /usr/local/pgsql/
+ /usr/local/pgsql/backups
- /usr/local/pgsql/*
+ /usr/local/varnish
- /usr/local/*
+ /usr/srv
- /usr/*
+ /var/
+ /var/backups
- /var/*
- /root/.my.cnf
- /*

在遞歸遍歷期間,rsync 根據規則匹配每個目錄。說到/usr,第一個匹配規則是- /*. 因此/usr被排除在外,並且 rsync 甚至不查看它下面的任何內容。修復:明確包括、/usr以及和。/usr/local``/usr/local/pgsql``/var

rsync 手冊在“包含/排除模式規則”下進行了更廣泛的討論(誠然,這不是最容易閱讀的)。

看起來您正在獲得 –one-file-system 行為。這可能是 freebsd 上的預設設置。

我還看到您的目的地不是應該破壞保留權限和所有權的根帳戶。

引用自:https://serverfault.com/questions/173073