Saya mencoba menggunakan "aws s3 sync" pada instance EC2 saya. Apakah opsi '--exclude' rusak?

8

Saya mencoba untuk membuat cadangan instance EC2 saya ke S3 menggunakan alat resmi Amazon yang sudah diinstal sebelumnya pada instance EC2. Saya mengalami kesulitan mendapatkan perintah sinkronisasi untuk mengecualikan direktori dari sinkronisasi. The dokumentasi membuatnya terdengar seperti itu mudah menggunakan '--exclude' pilihan. Namun, saya tidak dapat membuatnya berfungsi.

Saya menjalankan versi terbaru yang tersedia melalui yum:

[root@HOSTNAME ~]# aws --version
aws-cli/1.1.1 Python/2.6.8 Linux/3.4.57-48.42.amzn1.x86_64

Ini adalah perintah yang saya punya masalah dengan:

aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '*.git/*'

Saya ingin mengecualikan semua folder bernama '.git' dan semua file di folder itu dari sinkronisasi.

Menilai dari dokumentasi Pola yang saya berikan ke '--exclude' harus bekerja. Namun, seluruh direktori .git dan semua file-nya masih disinkronkan. Berikut ini contoh garis keluaran:

upload: ../var/www/site/.git/objects/7b/e3cdf203d34a0d7eff30a96a78d20eacee8d77 to s3://backup-bucket/var/www/site/.git/objects/7b/e3cdf203d34a0d7eff30a96a78d20eacee8d77

Saya mencoba perintah berikut, yang semuanya gagal untuk mengecualikan folder bernama '.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/.*'

Dan, mungkin yang paling mengganggu, perintah ini tidak mengecualikan sinkronisasi:

aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '*'

Bahkan, tampaknya '--exclude' hanya berfungsi jika globbing berada di sisi kanan jalur absolut. Sebagai contoh, ini tidak termasuk folder .git di /var/www/site/.git:

aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '/var/www/site/.git/*'

tetapi ini tidak mengecualikan apa pun:

aws s3 sync /var/www s3://backup-bucket/var/www/ --exclude '*/www/site/.git/*'

Saya memiliki banyak situs di / var / www dan banyak folder yang ingin saya kecualikan dari sinkronisasi seperti '. Git', 'parsed', 'cache', dll. Akan sangat mengerikan harus menyediakan jalur absolut untuk semuanya .

Saya berharap ada sesuatu yang sederhana yang saya lakukan salah di sini. Terima kasih atas bantuannya.

pengguna158845
sumber

Jawaban:

2

Masalah github yang disebutkan telah ditutup dan perintah sinkronisasi tidak mengizinkan dikecualikan sekarang .

Saya sudah mencoba dan menambahkan --exclude ".git/*"karya.

Perhatikan bahwa ending /*harus diisi.

Luciano
sumber