web-dev-qa-db-ja.com

rsyncで特定のフォルダーからファイルをバックアップする

Grsync/rsyncに含める/除外する特定のファイルを指定するにはどうすればよいですか?

現在、別の操作を使用して、指定したフォルダーのみからファイルをバックアップしています。 1パスで今すぐやりたいです。包含/除外オプションを見るべきだと思いますか?

次のようなフォルダ構造があるとします

/
  /inc1
    /inc1.1
    /...
  /inc2
    /...
  /exc1
  files in root here ... 

Inc1とinc2のファイル/フォルダーのみをバックアップしたいのですが、どうすればよいですか?

6
Jiew Meng

--includeオプションと--excludeオプションを使用するか、バックアッププロセスに--include-fromを使用すると、ファイルにバックアップするフォルダーを一覧表示できます。

たとえば、ファイルはincludes.txtと呼ばれ、ホームディレクトリに保存されます。含まれます

  inc1/
  inc2/

そして、ホームディレクトリのinc1およびinc2フォルダーをバックアップするrsyncコマンドは次のようになります。

rsync $HOME --include-from=~/includes.txt /home/backup/

rsyncは非常に柔軟性が高いため、最初にmanページを参照し、より具体的な質問をすることができない場合に最適です。

4

特定のディレクトリのみを含めるには、それらとそのコンテンツを含め、*を除外します。ディレクトリがルートにない場合は、それらにつながるすべてのディレクトリを含める必要があります。たとえば、/source/inc1/source/inc2、および/source/also/includedのみを含めるには:

rsync -a --include='/inc1/***' --include='/inc2/***' \
         --include='/also' --include='/also/included/***' \
         --exclude='*' /source /target

一般的なrsyncフィルターのクイックガイド も参照してください。

4
Gilles

たぶん私は何かを見逃していますが、それらのフォルダをrsyncに指定するだけです:

rsync -Pav /inc1 /inc2 /path/to/backup/folder/

これにより作成されます:

/path/to/backup/folder/inc1/
/path/to/backup/folder/inc1/inc1.1/
/path/to/backup/folder/inc1/...
/path/to/backup/folder/inc2/
/path/to/backup/folder/inc2/...
3
Jeremy Kerr