J'essaie de sauvegarder mon instance EC2 sur S3 à l'aide des outils officiels d'Amazon préinstallés sur l'instance EC2. J'ai du mal à obtenir la commande sync pour exclure les répertoires de la synchronisation. La documentation donne l'impression qu'il est facile d'utiliser l'option '--exclude'. Cependant, je n'ai pas pu le faire fonctionner.
J'utilise la dernière version disponible via yum:
[root@HOSTNAME ~]# aws --version
aws-cli/1.1.1 Python/2.6.8 Linux/3.4.57-48.42.amzn1.x86_64
Voici la commande avec laquelle j'ai des problèmes:
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '*.git/*'
Je souhaite exclure tous les dossiers nommés '.git' et tous les fichiers de ces dossiers de la synchronisation.
A en juger par la documentation Le modèle que j'ai donné à «--exclure» devrait fonctionner. Cependant, l'intégralité du répertoire .git et tous ses fichiers sont toujours synchronisés. Voici un exemple de ligne de sortie:
upload: ../var/www/site/.git/objects/7b/e3cdf203d34a0d7eff30a96a78d20eacee8d77 to s3://backup-bucket/var/www/site/.git/objects/7b/e3cdf203d34a0d7eff30a96a78d20eacee8d77
J'ai essayé les commandes suivantes, qui n'ont pas toutes exclu les dossiers nommés '.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/.*'
Et, ce qui est peut-être le plus troublant, cette commande n'exclut rien de la synchronisation:
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '*'
En fait, il semble que '--exclude' ne fonctionne que si le globbing se trouve sur le côté droit d'un chemin absolu. Par exemple, cela exclut le dossier .git dans /var/www/site/.git:
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '/var/www/site/.git/*'
mais cela n'exclut rien:
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '*/www/site/.git/*'
J'ai de nombreux sites dans / var / www et de nombreux dossiers que je souhaite exclure de la synchronisation tels que '.git', 'analysé', 'cache', etc. Ce serait terrible de devoir fournir des chemins absolus à chacun d'eux .
J'espère qu'il y a quelque chose de simple que je fais mal ici. Merci à tous pour votre aide.