Rsync的簡單使用
需求
一個運行很久的系統裏面可能包含了非常多的垃圾文件.
但是又不可能隨便刪除, 很多垃圾可能有某些奇葩的用法.
有時候新建一個應用複製文件的話比較浪費磁盤和帶寬.
所以這裏簡單總結一下一些很簡單的用法.
第一部分安裝
有時候很多低配安裝的系統不帶rsync的命令
如果可以上網可以直接安裝.
如果不能上網可以下載rsync的rpm包進行安裝.
實在不可以, 可以拿一個差不多版本同架構機器上面的rsync的二進制
複製到 /usr/bin 目錄下 進行使用.
第二部分: 差分同步
rsync -av /data/myapp /databack/ --delete
說明1:
-a 的命令表廣泛:
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
等效於如下命令一起使用:
-r, --recursive recurse into directories
-l, --links copy symlinks as symlinks
-p, --perms preserve permissions
-g, --group preserve group
-o, --owner preserve owner (super-user only)
-t, --times preserve modification times
說明2:
-v 僅是爲了驗證效果, 以後可以不使用
說明3:
--delete
是會將第一個目錄裏面曾經刪除過的動作在目錄2裏面執行重演.
能夠保證兩個目錄再增量備份時,刪除的文件也是一樣的.
第二部分: 排除部分文件
回到需求裏面的描述. 其實我們很大的需求是可以少同步幾個目錄. 來提高速度
命令需要爲:
rsync -av --exclude="somepath/underpatch" --exclude="*.log" /data/myapp [email protected]:/databack/
說明1:
注意--exclude= 的後面需要使用雙引號.
注意引號內部/data/myapp 作爲父路徑的目錄或者是文件即可. 比如 如果不想同步 /data/myapp/somepath 直接輸入
--exclude="somepath" 就可以.
說明2:
-v 也可以忽略.
第三部分: 關於 / 的處理
先說明: 結論需要自己實測. 我這邊使用的是centos 其他操作系統我保證不了
認爲關於 / 的處理. From的路徑是有用的. To的路徑用途不大. 都會指代路徑.
嘉定目錄信息爲:
/data/myapp/{1,2,3}
rsync -av /data/myapp /databack/
這個命令 會將 myapp 完整的複製到 /databack/的目錄下面
結果就是 /databack/myapp/{1,2,3}
rsync -av /data/myapp/ /databack2
這個命令 會將 myapp 下面的內容複製到 /databack2/ 的目錄下面
結果爲 /databack2/{1,2,3}
第三部分: 關於複製部分最近修改的文件
rsync -av remote_host:'$(find logs -type f -ctime -1)' local_dir
如果端口號不是標準的:
rsync -av -e 'ssh -p 2234' source/ user@remote_host:/destination
注意 如果ssh互信了,可以直接用.