Saya perlu cara sederhana untuk membuat cadangan file ke Amazon gletser dari baris perintah?

19

Saya memiliki server CentOS online dengan direktori file cPmove saya harus membuat cadangan ke Amazon Glacier. Saya hanya memiliki akses baris perintah, tidak ada GUI.

Saya memerlukan klien baris perintah yang relatif mudah digunakan untuk mengunggah file. Misalnya saya pernah menggunakan dropbox_uploader.sh sebelumnya ( https://github.com/andreafabrizi/Dropbox-Uploader ) dengan skrip bash sederhana ini:

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

Saya melihat ini: https://github.com/carlossg/glacier-cli tapi saya tidak menginstal java di server dan saya agak ragu untuk menginstalnya, karena semua masalah keamanan belakangan ini.

Saya punya python dan 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]#

Apakah ada klien baris perintah ruby ​​(lebih disukai) atau python atau bahasa lain (kurang disukai) amazon glacier?)

Ivan
sumber
Maaf, saya belum melihat ke dalam Gletser secara mendalam, saya pikir Anda memiliki akses ssh normal. Jawaban dihapus.
terdon
Sejak itu saya mengetahui bahwa saya dapat mengunggah ke s3 dengan permata kabut ruby. Kemudian, dari konsol manajemen aws s3, saya dapat menetapkan kebijakan kedaluwarsa dan mengarsipkan file ke gletser. Bekerja Juga, kabut mendukung Glacier secara langsung tetapi saya belum melihatnya. Bagi siapa pun yang ingin tahu, inilah skrip ruby ​​saya untuk mengunggah ke s3: gist.github.com/ivanoats/4712421
Ivan

Jawaban:

9

Perpustakaan kanonik untuk berinteraksi dengan AWS melalui Python adalah Boto . Meskipun dimaksudkan untuk digunakan sebagai pustaka dalam skrip Python, ini cukup sederhana untuk digunakan secara independen. Anda dapat membaca dokumentasi yang bagus , dan halaman ini memiliki ikhtisar tentang cara menggunakan Boto, tetapi berikut adalah bagian-bagian penting:

Masukkan kredensial AWS Anda di ~/.boto:

[Credentials]
aws_access_key_id = FOO
aws_secret_access_key = BAR

Daftar kubah Anda:

$ glacier vaults

Unggah file:

$ glacier upload foo-vault foo.zip

Daftar pekerjaan yang tertunda pada lemari besi tertentu:

$ glacier jobs foo-vault

Meskipun sebenarnya tidak lebih mudah digunakan daripada Boto sendiri, Antarmuka Amazon Glacier CLI didasarkan pada Boto dan pada kenyataannya dirancang untuk pengguna akhir. Ini adalah tutorial untuk itu.

Terakhir, AWS-CLI resmi agak mudah digunakan. Menempatkan kepercayaan dalam ~/.aws/credentialsdan kemudian hanya menggunakan perintah ini:

Buat brankas:

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

Unggah file:

$ aws glacier upload-archive --account-id - --vault-name foo-vault --body foo.zip
dotancohen
sumber
1
lucunya adalah langkah Anda upload-archivebahkan tidak tercakup dalam dokumentasi buruk di docs.aws.amazon.com/cli/latest/userguide/…
cryanbhu
Instruksi ini hanya akan berfungsi jika lemari besi Anda berada di wilayah default untuk boto (us-east-1). Kalau tidak, Anda perlu menentukan wilayah. Misal, jika brankas Anda ada di CA, perintahnya seharusnya aws glacier vaults --region us-west-1.
foobarbecue
4

Coba vsespb / mt-aws-glacier - Perl multithreaded sinkronisasi multipart ke Amazon Glacier dengan instruksi penggunaan yang mudah untuk CentOS.

vsespb
sumber
3

github.com/numblr/glaciertools menyediakan skrip bash yang mengatur unggahan mulitpart dari file besar dengan klien baris perintah AWS resmi ( AWS CLI ). Ini berguna dalam kasus ketika data Anda melebihi batas 4GB untuk mengunggah arsip dalam satu operasi dengan AWS CLI.

Untuk menggunakan skrip Anda harus memiliki AWS CLI terinstal dan setup, yang membutuhkan python. Tautan berisi informasi tambahan tentang pengaturan.

Lalu, Anda dapat membuat arsip cadangan dan mengunggahnya ke brankas di gletser

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

Informasi lebih rinci terdapat dalam dokumentasi di sana.

pengguna1587520
sumber