我正在尝试在EC2实例上使用“ aws s3 sync”。'--exclude'选项是否损坏?


8

我正在尝试使用预装在EC2实例上的Amazon官方工具将EC2实例备份到S3。我很难获得sync命令以从同步中排除目录。该文件使得它像它的使用“ -排除”选项易声。但是,我一直无法正常工作。

我正在运行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”的文件夹以及这些文件夹中的所有文件。

文档来看,我给“-排除”的模式应该可以工作。但是,整个.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”仅在全局路径位于绝对路径的右侧时才有效。例如,这不包括/var/www/site/.git中的.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'等。必须提供所有路径的绝对路径,这将很糟糕。

我希望我在这里做错了一些简单的事情。谢谢大家的帮助。

Answers:



2

提到的github问题已关闭,并且sync命令确实允许现在排除

我已经尝试并添加了--exclude ".git/*"作品。

请注意,结尾/*是必需的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.