Я пытаюсь сделать резервную копию своего экземпляра EC2 на S3, используя официальные инструменты Amazon, которые предварительно установлены на экземпляре EC2. У меня проблемы с получением команды синхронизации для исключения каталогов из синхронизации. Документация делает его звук , как это легко с помощью «--exclude» вариант. Однако я не смог заставить его работать.
Я использую последнюю версию, доступную через yum:
[root@HOSTNAME ~]# aws --version
aws-cli/1.1.1 Python/2.6.8 Linux/3.4.57-48.42.amzn1.x86_64
Это команда, с которой у меня проблемы:
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '*.git/*'
Я хочу исключить из синхронизации все папки с именем «.git» и все файлы в этих папках.
Судя по документации шаблон, который я дал '--exclude', должен работать. Однако весь каталог .git и все его файлы по-прежнему синхронизируются. Вот пример строки вывода:
upload: ../var/www/site/.git/objects/7b/e3cdf203d34a0d7eff30a96a78d20eacee8d77 to s3://backup-bucket/var/www/site/.git/objects/7b/e3cdf203d34a0d7eff30a96a78d20eacee8d77
Я попробовал следующие команды, которые не смогли исключить папки с именем .git:
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude *.git/*
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude */.git/*
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '.git'
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '*\.git/*'
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '.*\.git/.*'
И, пожалуй, самое неприятное, эта команда ничего не исключает из синхронизации:
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '*'
На самом деле, похоже, что --exclude работает только в том случае, если сглаживание находится на правой стороне абсолютного пути. Например, это исключает папку .git в /var/www/site/.git:
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '/var/www/site/.git/*'
но это ничего не исключает:
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '*/www/site/.git/*'
У меня есть много сайтов в / var / www и много папок, которые я хочу исключить из синхронизации, такие как '.git', 'parsed', 'cache' и т. Д. Было бы ужасно иметь абсолютные пути для всех них. ,
Я надеюсь, что здесь есть что-то простое, что я делаю неправильно. Спасибо за вашу помощь.