👨‍💻簡介

  • rsync
  • 用途:用來複製與備份檔案的工具,它可以處理本機或遠端的檔案同步工作

語法

rsync [OPTIONS] src [dest/user@host:dest]

參數

參數說明
-v, –verboseverbose 模式,輸出比較詳細的訊息
-r, –recursive遞迴(recursive)備份所有子目錄下的目錄與檔案
-a, –archive封裝備份模式,相當於 -rlptgoD,遞迴備份所有子目錄下的目錄與檔案,保留連結檔、檔案的擁有者、群組、權限以及時間戳記
-z, –compress啟用壓縮,可減少網路傳輸資料量
-h, –human-readable將數字以比較容易閱讀的格式輸出
-q, –quiet與 -v 相反,安靜模式,略過正常資訊,僅顯示錯誤訊息
-l, –links複製連結而不是連結內容
-g, –group保留檔案的原始群組狀態(權限不足則無法繼承)
-o, –owner保留檔案的原始擁有者(權限不足則無法繼承)
-t,–times保留檔案的原始時間參數
-e使用的通道協定,例如使用 ssh 通道,則 -e ssh
-u, –update在備份時會略過所有已經存在於目的端,且文件時間比要備份的檔案為新的檔案
-p, –perms表示要保留檔案的權限資訊
-D表示要保留設備檔案資訊
–delete刪除來源端已經不存在但在目的端存在的檔案
–force當目的端的目錄被覆蓋時,就強制先刪除該目錄
–bwlimit=RATE限制資料傳輸速度上限
–progress即時顯示傳輸進度
–exclude=PATTERN排除符合匹配的檔案
–include=PATTERN只備份符合匹配的檔案
–min-size=SIZE指定備份檔案的最小值
–max-size=SIZE指定備份檔案的最大值
–remove-source-files自動刪除來源檔案
-n, –dry-rundebug模式,測試rsync餐數
–existing只更新既有的檔案,排除新增的檔案
-i, –itemize-changes查看個別檔案的變動資訊

基本操作

  1. 複製本地端檔案或目錄
rsync -avh mylog.log /local/path/

rsync -avh /mypath /home/alan/
  1. 本地備份至遠端,將本地myfile.gz備份到遠端/remote/path/目錄下
rsync -avzh ./myfile.gz host@ip:/remote/path/
  1. 遠端備份至本地
rsync -avzh host@ip:/remote/path/myfile.gz /local/path
  1. 限制網速
rsync -avzh --bwlimit=100k host@ip:/remote/path/myfile.gz /local/path
  1. 顯示傳輸進度
rsync -avzh --progress host@ip:/remote/path/myfile.gz /local/path
  1. 同步刪除目的端檔案
rsync -avzh --delete host@ip:/remote/path/myfile.gz /local/path
  1. 備份特定檔案
# 排除掉結尾為.txt的檔案
rsync -avh --exclude '*.txt' src/path dest/path

# 只備份結尾為.txt的檔案
rsync -avh --include '*.txt' src/path dest/path
  1. 限制檔案大小
# 只備份1mb以上的檔案
rsync -avh --min-size=1m src/path dest/path

# 只備份最大1k的檔案
rsync -avh --max-size=1k src/path dest/path

# 只備份1k以上1mb以下的檔案
rsync -avh --min-size=1k --max-size=1m src/path dest/path
  1. 自動刪除來源檔案
# 將src/path的檔案備份到dest/path後清空,相當於mv的效果
rsync -avh --remove-source-files src/path dest/path

10, 測試rsync參數

rsync -avh --dry-run src/path dest/path
  1. 搭配crontab做定期備份
# m h  dom mon dow   command
0 5 * * 1 rsync -a /path/to/folder /path/to/backup/
  1. 只更新已存在的檔案
rsync -avh --existing src/path dest/path

參考資料

相關指令

  • scp