バックアップ ファイルとキャッシュを除外し、httpdocs サブディレクトリのみを含める tar バックアップ コマンド

バックアップ ファイルとキャッシュを除外し、httpdocs サブディレクトリのみを含める tar バックアップ コマンド

次の要件を満たす tar コマンドを探しています。

backwpup と .zip で終わるすべてのファイルを除外します (その間の文字は何でも構いません。例: uploads/123backwpup-123.zip) /media/backup/ と /application/cache/ の領域にあるすべてのフォルダーを除外します

私は次のようなレベルから始めます:

  • 例.com
  • 例:
  • 例:

それぞれにサブディレクトリがあります:

  1. /等/
  2. /httpdocs/
  3. /ライブラリ/
  4. ...

/httpdocs/ の内容のみを保存する必要があります。

コマンドで試してみました:

tar --exclude={"*backwpup*.zip", "*/media/backup/*", "*/application/cache/*"} -czvf backup.tar.gz **/httpdocs

しかし残念ながらパス付きのバックアップwp-content/uploads/backwpup-4578-backups/2022-10-31_12-22-31_IKXUCSLD01.zipまだ含まれています。

答え1

次の tar コマンドを使用してみてください。

tar --exclude='backwpup.zip' --exclude='/media/backup/' --exclude='/application/cache/' -czvf backup.tar.gz example.com/httpdocs example.de/httpdocs example.org/httpdocs

このコマンドは、「backwpup」または「.zip」で終わるすべてのファイルと、指定された場所にあるフォルダを除外します。また、各ドメインディレクトリの「httpdocs」サブディレクトリのみが含まれます。

答え2

たぶんこの方法でしょうか?

find * -type d \( -path '*/media/backup/*' -o -path '*/application/cache/*' \) -prune -o -path '*/httpdocs/*' -type f ! -name '*backwpup*.zip' -print0 | tar -czvf backup.tar.gz --null -T -

答え3

GNU tar を使用している場合は、ファイルを除外する方法についてのドキュメントを参照してください。https://www.gnu.org/software/tar/manual/html_node/exclude.html パターン マッチングの詳細は次のとおりです。詳しくは、man7.org をご覧ください。

GNU BASH を使用している場合は、for ループを使用してディレクトリをループできます。https://www.gnu.org/software/bash/manual/html_node/Looping-Constructs.htmlファイル名の拡張を使用する(https://www.gnu.org/software/bash/manual/html_node/ファイル名展開.html

このページの最後には良い例があります: https://linuxize.com/post/bash-for-loop/

関連情報