Tôi cần một cách đơn giản để sao lưu các tệp vào sông băng Amazon từ dòng lệnh?


19

Tôi có một máy chủ CentOS trực tuyến với một thư mục chứa các tệp cPmove mà tôi cần sao lưu vào Amazon Glacier. Tôi chỉ có quyền truy cập dòng lệnh, không có GUI.

Tôi cần một máy khách dòng lệnh tương đối dễ sử dụng để tải lên các tệp. Ví dụ: tôi đã sử dụng dropbox_uploader.sh trước đây ( https://github.com/andreafabrizi/Dropbox-Uploader ) với tập lệnh bash đơn giản này:

#!/bin/bash
find /backup_folder -maxdepth 1 -name "cpmove-*.tar.gz" | while read CPMOVE
do
   ./dropbox_uploader.sh upload ${CPMOVE}
done

Tôi đã thấy cái này: https://github.com/carlossg/glacier-cli nhưng tôi không cài đặt java trên máy chủ và hơi ngần ngại khi cài đặt nó, do tất cả các vấn đề bảo mật gần đây.

Tôi có trăn và ruby:

me@server [/home]# python -V
Python 2.4.3
root@server [/home]# ruby --version
ruby 1.8.7 (2012-06-29 patchlevel 370) [i686-linux]
me@server [/home]#

Có một ruby ​​(thích hợp hơn) hoặc python hoặc ngôn ngữ khác (ít thích hợp hơn) máy khách dòng lệnh amazon glacier không?)


Xin lỗi, tôi đã không nhìn sâu vào Glacier, tôi nghĩ bạn có quyền truy cập ssh bình thường. Trả lời đã xóa.
terdon

Kể từ đó tôi đã phát hiện ra rằng tôi có thể tải lên s3 bằng đá quý sương mù của ruby. Sau đó, từ bảng điều khiển quản lý aws của s3, tôi có thể đặt chính sách hết hạn và lưu trữ các tệp vào sông băng. Làm. Ngoài ra, sương mù hỗ trợ Glacier trực tiếp nhưng tôi chưa nhìn vào đó. Đối với bất kỳ ai tò mò, đây là kịch bản ruby ​​của tôi để tải lên s3: gist.github.com/ivanoats/4712421
Ivan

Câu trả lời:


9

Thư viện chính tắc để giao tiếp với AWS qua Python là Boto . Mặc dù nó được dự định sẽ được sử dụng như một thư viện trong tập lệnh Python, nhưng nó đủ đơn giản để sử dụng độc lập. Bạn có thể đọc lướt tài liệu tốttrang này có tổng quan về cách sử dụng Boto, nhưng đây là các phần quan trọng:

Đặt thông tin xác thực AWS của bạn vào ~/.boto:

[Credentials]
aws_access_key_id = FOO
aws_secret_access_key = BAR

Liệt kê kho tiền của bạn:

$ glacier vaults

Tải lên một tập tin:

$ glacier upload foo-vault foo.zip

Liệt kê các công việc đang chờ xử lý trên một hầm cụ thể:

$ glacier jobs foo-vault

Mặc dù nó thực sự không dễ sử dụng hơn bản thân Boto, Giao diện CLI của Amazon Glacier dựa trên Boto và trên thực tế được thiết kế cho người dùng cuối. Đây là một hướng dẫn cho nó.

Cuối cùng, AWS-CLI chính thức khá dễ sử dụng. Đặt các chứng trong ~/.aws/credentialsvà sau đó chỉ cần sử dụng các lệnh này:

Tạo một kho tiền:

$ aws glacier create-vault --account-id - --vault-name foo-vault

Tải lên một tập tin:

$ aws glacier upload-archive --account-id - --vault-name foo-vault --body foo.zip

1
Điều thú vị là bước của bạn upload-archivethậm chí không được đề cập trong tài liệu kém chất lượng tại docs.aws.amazon.com/cli/latest/userguide/ Kẻ
cryanbhu

Các hướng dẫn này sẽ chỉ hoạt động nếu kho tiền của bạn nằm trong vùng mặc định cho boto (us-East-1). Nếu không, bạn cần chỉ định khu vực. Ví dụ, nếu vault của bạn ở CA, lệnh sẽ là aws glacier vaults --region us-west-1.
foobarbiru



3

github.com/numblr/glaciertools cung cấp các tập lệnh bash phối hợp tải lên mulitpart của một tệp lớn với ứng dụng khách dòng lệnh AWS chính thức ( AWS CLI ). Điều này hữu ích trong trường hợp khi dữ liệu của bạn vượt quá giới hạn 4GB để tải lên tệp lưu trữ trong một thao tác với AWS CLI.

Để sử dụng các tập lệnh, bạn cần cài đặt và cài đặt AWS CLI, yêu cầu python. Liên kết chứa thông tin bổ sung về thiết lập.

Sau đó, bạn có thể tạo một kho lưu trữ bản sao lưu của mình và tải nó lên một vault trên sông băng với

> ./glacierupload -v myvault /path/to/my/archive

Thông tin chi tiết có trong tài liệu ở đó.

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.