rsyncコマンドを学んでみよう!!
最近では滅多に使わなくなったrsyncコマンドを覚えて置くためのメモ投稿です。
[ 目次 ]
はじめに
こんにちは、香港に住んでいるWEBデベロッパーのなかむ(@nakanakamu0828)です。
この記事は過去に運用していたブログからの移行記事になります。
今回はLinuxのコマンドのrsyncについて学んでいきます。
rsyncとは
rsyncコマンドは、ディレクトリ、ファイルを転送・同期する際に利用します。
オプション | 意味 |
---|---|
-a | 「-rlptgoD」と指定したのと同様の効果。(--recursive --links --perms --times --group --owner --devices) とりあえず基本つけておく |
-v | 処理の経過を表示 |
-r | 再帰的にコピー |
--delete | 削除ファイルも同期 |
--existing | 更新分のみ(追加は無視される) |
--exclude | 除外対象を指定 |
-e ssh [user@host] | ssh経由での同期 |
サンプルコマンド
【サンプル1 : aaaディレクトリ配下をbbbディレクトリ配下に同期します】
$ rsync -av ./aaa/ bbb
【サンプル2 : aaaディレクトリをbbbディレクトリ配下に同期します】
$ rsync -av ./aaa bbb
【サンプル3 : リモートのaaaディレクトリ配下をローカルのbbbディレクトリに同期】
$ rsync -av -e ssh [user]@[host]:/home/user/aaa/ ./bbb
【サンプル4 : ローカルのaaaディレクトリ配下をリモートのbbbディレクトリに同期】
$ rsync -av -e ssh ./aaa/ [user]@[host]:/home/user/bbb
【サンプル5 : ローカルのaaaディレクトリ配下をリモートのbbbディレクトリに同期。但し、.gitディレクトリを除外する】
$ rsync -av --exdlude=".git" -e ssh ./aaa/ [user]@[host]:/home/user/bbb
【サンプル6 : ローカルのaaaディレクトリ配下をリモートのbbbディレクトリに同期。但し、ローカルで削除されたディレクトリやファイルがある場合、リモートも削除】
$ rsync -av --delete -e ssh ./aaa/* [user]@[host]:/home/user/bbb
以上となります。
サンプルを利用して色々な同期方法を試してみましょう。