以前、ディスクのバックアップ関係で、rsyncコマンドについてサラッと書きましたが、今回はrsyncのexcludeオプションを使って、主に特定のファイルやディレクトリを除外する、除外リストについてまとめたいと思います。
rsyncの基本的な書き方やオプションについては、過去記事でも紹介していますので参考にしてみてください。
除外リストの2つの書き方
rsyncで除外するファイルやディレクトリを指定するには2つのオプションが用意されています。
1つは、rsyncコマンドの[–exclude]オプションに直接入力する方法。
2つ目は、除外リストファイルを作成し、そのファイルをrsyncコマンドの[–exclude-from]オプションで指定する方法です。
実際のオプションは以下の2つです。
1 2 |
rsync --exclude [ファイル名 or ディレクトリ名] rsync --exclude-from [除外リストファイル名] |
では、以下のサイトを参考に実際の設定例を見ていきましょう。
–exclude [ファイル名 or ディレクトリ名]
この[–exclude]オプションは、普通に除外したいファイルやディレクトリを指定します。
ファイルを指定する場合は、
1 |
rsync -a --exclude 'file.txt' src_directory/ dst_directory/ |
[–exclude]でファイルではなくディレクトリを指定する場合は、
1 |
rsync -a --exclude 'dir' src_directory/ dst_directory/ |
また、ワイルドカードを使用して特定のディレクトリ配下や拡張子を指定したり。
1 2 |
rsync -a --exclude 'dir/*' src_directory/ dst_directory/ rsync -a --exclude '*.jpg' src_directory/ dst_directory/ |
ここまでは特に説明の必要はないと思います。
–exclude-from [除外リストファイル名]
次に、除外リストファイルを用意して[–exclude-from]オプションを使用する場合です。
例えば、[exclude-file.txt]という名前の除外リストファイルを作成し、中身を以下のように記載しているとします。
1 2 3 |
file1.txt dir1/* dir2 |
[–exclude-from]オプションで指定する際はこのようになります。
1 |
rsync -a --exclude-from='exclude-file.txt' src_directory/ dst_directory/ |
こうすることで、後で除外リストを変更したい場合は、コマンドは書き換えずにファイルの内容だけ書き換えれば済むので、除外リストの管理が楽になります!
ちなみに、同じ内容を[–exclude]オプションを使って書こうとすると、このようになります。。
1 |
rsync -a --exclude={'file1.txt','dir1/*','dir2'} src_directory/ dst_directory/ |
指定するファイルやディレクトリ少ないうちは、これでも良いかもしれませんが、増えてくると管理が面倒になりますね…。以上です。
rsyncはバックアップにとても便利ですので、ぜひ使ってみてください!
コメント