排除文件和目錄列表
有時(shí)候,當(dāng)我們做大量同步的時(shí)候,我們可能想要從同步的文件和目錄中排除一個(gè)文件和目錄的列表。一般來說,像設(shè)備文件和某些系統(tǒng)文件,或者像臨時(shí)文件或者緩存文件這類占據(jù)不必要磁盤空間的文件是不合適同步的,這類文件是我們需要排除的。
首先,讓我們創(chuàng)建一個(gè)名為“excluded”的文件(當(dāng)然,你想取什么名都可以),然后將我們想要排除的文件夾或文件寫入該文件,一行一個(gè)。在我們的例子中,如果你想要對(duì)根分區(qū)進(jìn)行完整的備份,你應(yīng)該排除一些在啟動(dòng)時(shí)創(chuàng)建的設(shè)備目錄和放置臨時(shí)文件的目錄,列表看起來像下面這樣:
然后,你可以運(yùn)行以下命令來備份系統(tǒng):
$ sudo rsync -aAXhv --exclude-from=excluded / /mnt/backup
從命令行排除文件
你也可以從命令行直接排除文件,該方法在你要排除的文件數(shù)量較少,并且在你想要將它寫成腳本或加到crontab中又不想腳本或cron依賴于另外一個(gè)文件運(yùn)行時(shí)十分有用。
例如,如果你想要同步/var到一個(gè)備份目錄,但是你不想要包含cache和tmp這些通常不會(huì)有重要內(nèi)容的文件夾,你可以使用以下命令:
$ sudo rsync -aAXhv --exclude={"/var/cache","/var/tmp"} /var /home/adrian/var
該命令易于在腳本或cron中使用,也不會(huì)依賴其它文件。