2017-02-04 4 views
1

Я использую этот интерфейс командной строки:AWS S3 кли: исключите не работает

aws s3 sync /home/me s3://meserver/test_me --exclude "*.o" --exclude "error_log" --exclude "access_log" --exclude "*.tgz" --exclude "*.tar.gz" --exclude "*.zip" --exclude "*.log" --exclude "*.tar" 

.zip-и вроде исключения просто отлично. Но error_log нет.

upload: ../../home/me/log/error_log to s3://meserver/testme/log/error_log 

Что мне не хватает? Это точное имя файла.

+2

Вы можете попробовать '--exclude "*/error_log"' – franklinsijo

ответ

1

Ваша команда говорит: --exclude "error_log"

Однако объект, который был скопирован log/error_log, так как он не соответствует error_log.

Обратите внимание: команда использует пути и префиксы, а не только имена файлов. Объект key, хранящийся в Amazon S3, фактически состоит из полного пути, а также имени. Таким образом, error_log должны быть указаны в полном объеме.

Вы можете исключить файл с помощью --exclude "log/error_log" или если вы хотите исключить все такие файлы, используйте --exclude "*/error_log".

+0

Да. Добавление «* /» перед вашим шаблоном - это решение. Я думал, что «aws s3 sync» должен работать как rsync, который не требует «* /». Документация Amazon дает пример, чтобы это было ясно. – nmgeek

0

Try:

aws s3 sync /home/me s3://meserver/test_me --exclude "\*.o" --exclude "\*/error_log" --exclude "access_log" --exclude "\*.tgz" --exclude "\*.tar.gz" --exclude "\*.zip" --exclude "\*.log" --exclude "\*.tar" 

 Смежные вопросы

  • Нет связанных вопросов^_^