Rsyncで特定の拡張子のみを対象にする方法

binary-1607190_1280
LINEで送る
Share on GREE
Share on LinkedIn

サーバー管理者はもちろんですが、最近のWEBエンジニアは、サーバーサイドの運用管理もできなければ「使えないヤツ」というレッテルを貼られてしまいます。

サーバー間のデータ同期や、差分確認、新規サーバーへのデータ移設など、一般運用すると、「rsync」コマンドを使うシチュエーションはたくさんあります。

最近のサーバ構成と役立つrsync

サバクラ型のWEBサービス構成で、最近では、フロント、バックのサーバー構成で、公開サーバーと、データ管理するバックエンド管理するサーバー構成に分けて、運用リスクを分散させるのはセオリーのようです。

バック側では、CGIをはじめ、サーバー管理用のbashやら、バックアップファイルなどあらゆるデータを管理する事になりますが、フロントサーバーには、html、JS、CSSなど、web公開用のファイルだけを配置する場合に、フロントサーバとバックサーバで全く同じ構成ではなく、特定の種類のファイルだけを同期させたい時に今回のやり方をお役立てください。

特定の拡張子のみをrsyncで同期する方法

環境サンプル

server-A : フロントサーバー
server-B : バックサーバー

条件

server-Bのhtml,js,cssファイルのみをserver-Aに配置する。
※階層構造などは、元のままにする。

Rsyncコマンド

解説

–includeと–excludeは順番が重要なので以下の手順で行なってください。

1. –include=”*/” ※子階層を全て対象にする
2. –include=”*.html” ※必要な拡張子を書き出す(複数可)
3. –exclude=”*” ※対象の拡張子以外を除外する

拡張子以外でも、任意ファイル名などを対象にもできます。

今回はコピーされるリストを表示するだけで実際にコピーされないように「–dry-run」オプションを付けています。
実際にコピーしたい場合は、このオプションを省いて行なってください。

Rsyncシリーズ記事

参考サイト

http://tech.nitoyon.com/ja/blog/2013/03/26/rsync-include-exclude/
こちらにincludeとexcludeの解説が分かりやすく書かれています。

過去記事

ちなみに、rsyncは非常に奥深い機能が多いので、以前書いた記事も参考してください。
rsyncを極めてとインフラ運用に強くなろう!
rsyncのリスクについて

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*