Linuxのrsyncで特定のファイルやディレクトリを除外する方法

rsync-exclude
LINEで送る
Pocket

以前、ディスクのバックアップ関係で、rsyncコマンドについてサラッと書きましたが、今回はrsyncの便利な機能、主に特定のフォルダディレクトリ除外する、除外リストについてまとめたいと思います。
rsyncの基本的な書き方やオプションについては、過去記事でも紹介していますので参考にしてみてください。

この前のバックアップ用のHDDが5、6年ぶりに突然死した件で、その時起動しなくなったトラブルの話を書き忘れていたので、ここで新たに追記します。その時のトラブルと言うのは、アンマウントして再起動を実行したら、emergency modeで起動しなくなった時のお話です。emergency modeで起動できない! Amazonで新しく購入したHDDが届くまで、とりあえず先に故障したHDDを外しておこうと思い、umountコマンドでアンマウントして電源を切り、HDDを抜き取り再び起動したところ、いつまで経ってもSSHで接続できず、仕方なくvSphere Clientの...

5、6年ぶりにバックアップ用のHDDが壊れたので交換しました。ただ交換するだけでなく、自宅のファイルサーバーとして使用しているESXiのゲストCentOSにマウントします。久しぶりにマウントしたのですが、やり方をすっかり忘れていましたのでメモっておきます。ESXiホストでHDDの仮想化まずは、新しく買ってきたHDDをWindowsでも使えるようにNTFSでフォーマットしておきましょう。そして、故障したHDDをゲストでアンマウントし、umount /mnt/backupvSphere Clientを開き、ESXiホストの>>から、故障した仮想ディスクも削除しておきまし...

除外リストの2つの書き方

rsync除外するファイルディレクトリを指定するには2つのオプションが用意されています。
1つは、rsyncコマンドオプション直接入力する方法。
もう1つは、除外リストファイルを作成し、そのファイルをrsyncコマンドで指定する方法です。
実際のオプションは以下の2つです。

rsync --exclude [ファイル名 or ディレクトリ名]
rsync --exclude-from [除外リストファイル名]

では、以下のサイトを参考に実際の設定例を見ていきましょう。

–exclude [ファイル名 or ディレクトリ名]

このオプションは、普通に除外したいファイルフォルダを指定します。
ファイルを指定する場合は、

rsync -a --exclude 'file.txt' src_directory/ dst_directory/

ディレクトリを指定する場合は、

rsync -a --exclude 'dir' src_directory/ dst_directory/

また、ワイルドカードを使用して特定のディレクトリ配下や拡張子を指定したり。

rsync -a --exclude 'dir/*' src_directory/ dst_directory/
rsync -a --exclude '*.jpg' src_directory/ dst_directory/

ここまでは特に説明の必要はないと思います。

–exclude-from [除外リストファイル名]

次に、除外リストファイルを用意した場合です。
例えば、[exclude-file.txt]という名前の除外リストファイルを作成し、中身を以下のように記載しているとします。

file1.txt
dir1/*
dir2

--exclude-fromオプションで指定する際はこのようになります。

rsync -a --exclude-from='exclude-file.txt' src_directory/ dst_directory/

こうすることで、後で除外リストを変更したい場合は、コマンドは書き換えずにファイルの内容だけ書き換えれば済むので、除外リストの管理が楽になります!
ちなみに、同じ内容を--excludeオプションを使って書こうとすると、このようになります。。

rsync -a --exclude={'file1.txt','dir1/*','dir2'} src_directory/ dst_directory/

指定するファイルディレクトリ少ないうちは、これでも良いかもしれませんが、増えてくると管理が面倒になりますね…。

以上です。
rsyncバックアップにとても便利ですので、ぜひ使ってみてください!

この記事が気に入ったら
いいね ! しよう

Twitter で
LINEで送る
Pocket


コメントを残す

Amazon プライム対象