完全解析Rsync命令的17個備份選項
常常備份是良好的習慣,只是這麼好習慣只有在無數次的頓足捶胸、呼天搶地的懊惱之後,才會勉勉強強慢慢地養成。 |
常常備份是良好的習慣,只是這麼好習慣只有在無數次的頓足捶胸、呼天搶地的懊惱之後,才會勉勉強強慢慢地養成,備份最常用的 是:
rsync -avl source destination
此處的短選項 a 是長選項--archive 的簡寫形式。然而,如果我們要系統搬家的時候備份所有的資料,謹慎用 -a 選項。因為如果在新系統上換了新的使用者名稱,會導致你打不開用 -a 選型備份的所有資料。
為什麼呢?
選項--archive看似僅僅代表一個指示條件,其實質卻是多個高頻選項的快捷鍵:
rsync -a #等價於 -rlptgoD
換言之,-a這一個option,相當於新增了-rlptgoD這七個options。引言中提出的問題,癥結就在這裡。
-p --perms # 保留許可權 -o --owner # 保留owner -g --group # 同步組
上面的三個選項,分別同步檔案的額許可權,屬主和屬組;後果是,我們只能用當前的使用者檢視所有備份的資料。切換使用者之後,則沒有對應許可權檢視。
因此,我們重灌系統備份所有資料的時候,要慎用-a 選項。
rsync 的基礎選項有:
-v --verbose # 在終端中報告當前的進度 -r --recursive # 遞迴模式 -t --times # 同步時間戳 -I --ignore-times # 不同步時間戳 -l --links # 建立軟連線 -L, --copy-links # 複製軟連線所指向的位置 -z, --compress # 允許壓縮 -d, --dirs # 只備份目錄樹結構
以上8個option是rsync 的基礎部分。
同步的過程中,我們常常需要排除掉dot檔案,比如.git.ssh等,exclude命令就有了用武之地
--exclude={.ssh,.git,.config}
-exclude-from=FILE選項提供了更貼心的服務,我們可以將經常要排除掉的目錄寫進專門的檔案。此檔案中,我們可以應用#和;備註,rsync命令會自動忽略,同時也會跳過空白行。
與‘exclude’相對應的是 ‘include’。如果不使用 {},我們可以寫成多行的模式:
rsync -av ~/Documents \ --include=~/Public \ --include=~/Music \ --include=~/Videos \ --include=~/Downloads \ /media/spiritme/disk/
除了include 和exclude 之外,rsync還準備了根據檔案的大小實施篩選的選項:
--max-size=SIZE # 篩選掉大於此SIZE的檔案 --min-size=SIZE # 排除掉小於此SIZE的檔案
--update 選項是rsync命令的靈魂。根據rsync十分貼心的演算法,destination 中時間戳晚於source中的檔案不會被覆蓋掉。
與 --update 選項協同作戰的還有--delete選項,將刪除掉destination中多餘的目錄與檔案。
與--delete 呼應的是--existing 選項,只同步在目標位置存在的檔案,而不建立新的檔案。
以上三個選項乃是rsync命令的核心部分。
我們還可以更好的監控rsync的工作進度以及生成最終的報告。
--progress會列印檔期的進度
782448 63% 110.64kB/s 0:00:04 # 與 -h 搭配使用
-i, --itemize-changes將生成所有變更的報告。
-W, --whole-file選項會改變rsync的演算法。關閉其預設的 delta-transfer algorithm,而將檔案整體移動。當然如果是在本地執行rsync,-W 則是預設行為。
-c, --checksum選項將改變rsync預設的‘quick-check’演算法。
我們從具體問題‘rsync-a' 命令導致的許可權問題出發,遵循循序漸進的邏輯分別探討了:
1)快捷方式 rsync -a2)常用的8個基本選項3)排除和包含特定的檔案與目錄的方法4)rsync 命令的核心5)改變 rsync 演算法的選項
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2747023/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [rsync]——rsync檔案同步和備份
- Linux 中 rsync 備份資料使用例項Linux
- Linux中rsync備份資料使用例項Linux
- 完全備份、差異備份、增量備份的區別
- Linux-中-rsync-備份資料使用例項Linux
- 常用命令--複製-備份--cp--mv--scp--rsync
- 使用rsync同步網路備份
- rsync 守護程式備份報錯
- Rsync資料遠端同步備份
- pflag - 更好的PHP命令列選項解析庫PHP命令列
- tcpdump 命令的個常用選項:三TCP
- tcpdump 命令的個常用選項:二TCP
- tcpdump 命令的個常用選項:一TCP
- NFS儲存rman備份時的mount選項NFS
- rsync同步和備份檔案到本地
- rsync + lsyncd 檔案實時同步/備份
- 使用 rsync 來備份 Linux 系統Linux
- Oracle冷備份級冷備份的不完全恢復Oracle
- 備份命令
- linux下rsync和tar增量備份梳理Linux
- 用rsync實現網站映象和備份網站
- 10個 ssh 簡單命令選項
- 用rsync實現網站映象和備份(ZT)網站
- 備份命令列命令列
- Backup And Recovery User's Guide-備份資料庫-RMAN備份概覽-指定備份輸出選項GUIIDE資料庫
- Oracle邏輯備份與恢復選項說明Oracle
- 學習 第2章:備份與恢復選項
- mysql之 innobackupex備份+binlog日誌的完全恢復(命令列執行模式)MySql命令列模式
- Backup And Recovery User's Guide-從RMAN開始-備份資料庫-典型的備份選項GUIIDE資料庫
- 通過rsync實現遠端容災備份薦
- rsync備份【基於客戶端與服務端】客戶端服務端
- 基於歸檔的熱備份完全恢復
- linux-解析命令列選項getopt_long用法Linux命令列
- oracle rman備份命令Oracle
- 常用RMAN 備份命令
- 如何使用 rsync 備份 Linux 系統的一些介紹Linux
- Linux命令---rsyncLinux
- rsync命令詳解