Tôi đang cố gắng sử dụng đồng bộ hóa aw aws s3 trên ví dụ EC2 của tôi. Tùy chọn '- bao gồm' có bị hỏng không?


8

Tôi đang cố gắng sao lưu phiên bản EC2 của mình sang S3 bằng các công cụ chính thức của Amazon được cài đặt sẵn trên phiên bản EC2. Tôi gặp khó khăn khi nhận lệnh đồng bộ hóa để loại trừ các thư mục khỏi đồng bộ hóa. Các tài liệu làm cho nó âm thanh như nó dễ dàng bằng cách sử dụng tùy chọn '--exclude'. Tuy nhiên, tôi đã không thể làm cho nó hoạt động.

Tôi đang chạy phiên bản mới nhất có sẵn thông qua yum:

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

Đây là lệnh tôi gặp rắc rối với:

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

Tôi muốn loại trừ tất cả các thư mục có tên '.git' và tất cả các tệp trong các thư mục đó khỏi đồng bộ hóa.

Đánh giá từ tài liệu Mẫu mà tôi đưa ra cho '- bao gồm' sẽ hoạt động. Tuy nhiên, toàn bộ thư mục .git và tất cả các tệp của nó vẫn được đồng bộ hóa. Dưới đây là một dòng ví dụ về đầu ra:

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

Tôi đã thử các lệnh sau, tất cả đều thất bại trong việc loại trừ các thư mục có tên '.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/.*'

Và, có lẽ đáng lo ngại nhất, lệnh này không loại trừ bất cứ điều gì từ đồng bộ hóa:

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

Trên thực tế, có vẻ như '- bao gồm' chỉ hoạt động nếu hình cầu nằm ở bên phải của một đường dẫn tuyệt đối. Ví dụ: mục này loại trừ thư mục .git tại /var/www/site/.git:

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

nhưng điều này không loại trừ bất cứ điều gì:

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

Tôi có nhiều trang web trong / var / www và nhiều thư mục mà tôi muốn loại trừ khỏi việc đồng bộ hóa, chẳng hạn như '.git', 'được phân tích cú pháp', 'bộ đệm', v.v. Thật kinh khủng khi phải cung cấp đường dẫn tuyệt đối cho tất cả chúng .

Tôi hy vọng rằng có một cái gì đó đơn giản mà tôi đang làm sai ở đây. Cảm ơn mọi sự giúp đỡ của bạn.

Câu trả lời:



2

Sự cố github đã đề cập đã bị đóng và lệnh đồng bộ hóa cho phép loại trừ ngay bây giờ .

Tôi đã thử và thêm --exclude ".git/*"các tác phẩm.

Lưu ý rằng kết thúc /*là bắt buộc.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.