rsyncのサンプル例集

Linux環境運用していると、rsyncでファイルだったりディレクトリ同期をする機会多いけどオプションとか忘れる事多いのでメモ

よく使うサンプルを挙げてみた。


/の意味

まずは、このスラッシュの使い方で久々にやるとまずはまるので整理

有無
動作

有り src/
src配下のファイルが同期対象

なし src
srcディレクトリ自体が同期対象


オプション一覧

色んなオプションあるけど、適切なものをいつもmanで調べるのでこれを気にまとめとく

オプション
意味

-a
「-rlptgoD」と指定したのと同様の効果。(--recursive --links --perms --times --group --owner --devices)
とりあえず基本つけておく

-v
処理の経過を表示

-r
再帰的にコピー

--delete
削除ファイルも同期

--existing
更新分のみ(追加は無視される)

--exclude
除外対象を指定

-e ssh [user@host]
ssh経由での同期


よく使うサンプル

だいたいrsync使う場合は、下記パターンのどれかを使って、cronなりshellscriptで回すと思う


src配下をdst配下へ同期

$ rsync -av ./src/ dst

$ll dst
aaa.txt


srcをdst配下へ同期

$ rsync -av ./src dst

$ ll dest
src


リモートのsrc配下をローカルのdstに同期

$ rsync -av -e ssh  [user]@[host]:./src/ dst


ローカルのsrc配下をリモートdstに同期

$ rsync -av -e ssh ./src/ [user]@[host]:dst


特定のファイル(*.log)以外を同期

$ rsync -av -e ssh --exclude '*.log' ./src/ [user]@[host]:dst


更新されたファイルのみ同期

$ rsync -av -e ssh --existing ./src/ [user]@[host]:dst


ファイルを完全(削除したものも対象)に同期

$ rsync -av -e ssh --delete ./src/ [user]@[host]:dst