rcyncで特定のファイルだけを同期・除外する方法

ターミナル
更新日:2020.08.16 公開日:2020.08.16
rcyncするときにフォルダ内の特定のフォルダだけ同期や除外したい時ってありますよね。
rcyncではホワイトリストとブラックリストの方式でファイルやフォルダを指定することができます。
もくじ
特定のファイルを除外する(ブラックリスト)
特定のファイルやフォルダを除外するには--exclude
で除外することができる。
rsync -auvz -e "ssh -p 10022 -i ~/.ssh/id_xserver_rsa" --exclude="example.txt" -rlpt ./ user@server.xserver.jp:example.com/public_html
特定のファイルだけ同期する(ホワイトリスト)
特定のファイルやフォルダだけ同期するには--include
で指定することができる。
rsync -auvz -e "ssh -p 10022 -i ~/.ssh/id_xserver_rsa" --include="example.txt" -rlpt ./ user@server.xserver.jp:example.com/public_html
まとめて除外した中で特定のファイルだけ同期する
outputフォルダは除外したいんだけど、その中のexampleフォルダ内だけは許可したいんだよね、みたいな場合は外部ファイルで書く。
許可した後に除外する順番で書くこと。
+ output/example //許可したいフォルダ
- output/* //まとめて除外したいフォルダ
これはincludeでいいんじゃないかなと思うけど、以前なにかの時に使った記憶があるのでメモ。
外部ファイルで書く方法
外部ファイルで同期/除外するファイルを指定する時は--exclude-from
を使う。
// 除外する
rsync -auvz -e "ssh -p 10022 -i ~/.ssh/id_xserver_rsa" --exclude-from=exclude.txt -rlpt ./ user@server.xserver.jp:example.com/public_html
// 同期する
rsync -auvz -e "ssh -p 10022 -i ~/.ssh/id_xserver_rsa" --exclude-from=exclude.txt -rlpt ./ user@server.xserver.jp:example.com/public_html
テストの時は–dry-runをつけましょう
カテゴリー:
ターミナル