我试图在我的EC2实例上使用“aws s3 sync”。 '–exclude'选项是否被破坏?

我试图使用EC2实例上预安装的Amazon官方工具将我的EC2实例备份到S3。 我很难得到同步命令从同步排除目录。 这个文档听起来像使用'–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”的所有文件夹和这些文件夹中的所有文件。

从文档判断我给“ – 排除”模式应该工作。 但是,整个.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 '*' 

事实上,看起来“排除”只有在绝对path右侧的情况下才有效。 例如,这会排除/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'等。要为它们提供绝对path是非常可怕的。

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

这对我来说也是一个问题,而且这个https://github.com/aws/aws-cli/issues/434已经有一个公开的问题了。 这是一个错误。

提到的github问题是closures的, 同步命令现在允许排除

我试过并添加--exclude ".git/*"作品。

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