Sto cercando di eseguire il backup della mia istanza EC2 su S3 utilizzando gli strumenti ufficiali di Amazon preinstallati sull'istanza EC2. Ho difficoltà a ottenere il comando sync per escludere le directory dalla sincronizzazione. La documentazione fa sembrare che sia facile usando l'opzione '--exclude'. Tuttavia, non sono riuscito a farlo funzionare.
Sto eseguendo l'ultima versione disponibile tramite yum:
[root@HOSTNAME ~]# aws --version
aws-cli/1.1.1 Python/2.6.8 Linux/3.4.57-48.42.amzn1.x86_64
Questo è il comando con cui ho problemi:
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '*.git/*'
Voglio escludere dalla sincronizzazione tutte le cartelle denominate '.git' e tutti i file in quelle cartelle.
A giudicare dalla documentazione Il modello che ho dato a "--exclude" dovrebbe funzionare. Tuttavia, l'intera directory .git e tutti i suoi file sono ancora sincronizzati. Ecco un esempio di output:
upload: ../var/www/site/.git/objects/7b/e3cdf203d34a0d7eff30a96a78d20eacee8d77 to s3://backup-bucket/var/www/site/.git/objects/7b/e3cdf203d34a0d7eff30a96a78d20eacee8d77
Ho provato i seguenti comandi, che non sono riusciti a escludere le cartelle denominate '.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/.*'
E, forse più inquietante, questo comando non esclude nulla dalla sincronizzazione:
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '*'
In effetti, sembra che "--exclude" funzioni solo se il globbing si trova sul lato destro di un percorso assoluto. Ad esempio, questo esclude la cartella .git in /var/www/site/.git:
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '/var/www/site/.git/*'
ma questo non esclude nulla:
aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '*/www/site/.git/*'
Ho molti siti in / var / www e molte cartelle che voglio escludere dalla sincronizzazione come '.git', 'parsed', 'cache', ecc. Sarebbe terribile dover fornire percorsi assoluti a tutti loro .
Spero che ci sia qualcosa di semplice che sto facendo di sbagliato qui. Grazie a tutti per il vostro aiuto.