Cómo instalar s3cmd en Linux y administrar un buckets S3 de AWS

s3cmd es una utilidad de línea de comandos que he utilizado para hacer backups en un buket s3, ademas de cargar archivos pueden recuperar y administrar datos en el almacenamiento de s3. En esta nota te ayudaré a instalar s3cmd en sistemas CentOS, RHEL, OpenSUSE, Ubuntu, Debian y LinuxMint a través de la línea de comandos en unos sencillos pasos.

Instalar s3cmd en Linux

s3cmd está disponible por defecto en repositorios para sistemas CentOS, RHEL y Ubuntu. Puede instalarlo simplemente ejecutando los siguientes comandos en su sistema.

CentOS / RHEL:

Snippet
yum install s3cmd

Ubuntu/Debian:

Snippet
sudo apt install s3cmd

SUSE Linux Enterprise Server 11:

Snippet
zypper addrepo http://s3tools.org/repo/SLE_11/s3tools.repo
 
zypper install s3cmd

Instale s3cmd usando código fuente:

Si quieres instalar la última versión de s3cmd puede descargar e instalar el código fuente en esta url.

Snippet
wget https://sourceforge.net/projects/s3tools/files/s3cmd/2.1.0/s3cmd-2.1.0.tar.gz/download
tar xzf s3cmd-2.0.1.tar.gz

Ahora instálelo usando el siguiente comando con los archivos fuente que se descargaron anteriormente.

Snippet
cd s3cmd-2.1.0
sudo python setup.py install

Configurar el entorno s3cmd

Para configurar s3cmd necesitamos un Access Key y Secret Key de su cuenta de AWS s3. Obtenga estas claves de seguridad en la página de AWS IAM.

Después de obtener la clave, use el siguiente comando para configurar s3cmd.

Snippet
s3cmd --configure
 
Enter new values or accept defaults in brackets with Enter.
Refer to user manual for detailed description of all options.
 
Access key and Secret key are your identifiers for Amazon S3
Access Key: xxxxxxxxxxxxxxxxxxxxxx
Secret Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 
Encryption password is used to protect your files from reading
by unauthorized persons while in transfer to S3
Encryption password: xxxxxxxxxx
Path to GPG program [/usr/bin/gpg]:
 
When using secure HTTPS protocol all communication with Amazon S3
servers is protected from 3rd party eavesdropping. This method is
slower than plain HTTP and can't be used if you're behind a proxy
Use HTTPS protocol [No]: Yes
 
New settings:
  Access Key: xxxxxxxxxxxxxxxxxxxxxx
  Secret Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  Encryption password: xxxxxxxxxx
  Path to GPG program: /usr/bin/gpg
  Use HTTPS protocol: True
  HTTP Proxy server name:
  HTTP Proxy server port: 0
 
Test access with supplied credentials? [Y/n] Y
Please wait, attempting to list all buckets...
Success. Your access key and secret key worked fine :-)
 
Now verifying that encryption works...
Success. Encryption and decryption worked fine :-)
 
Save settings? [y/N] y
Configuration saved to '/root/.s3cfg'

Comandos básicos de s3cmd

A continuación, encontrará los detalles de los comandos sobre cómo administrar un bucket s3 mediante los siguientes comandos.

1. Lista de todos los buckets S3

Utilice el siguiente comando para enumerar todos los buckets s3 de su cuenta de aws.

Snippet
s3cmd ls

2. Crear un nuevo bucket

Para crear un nuevo bucket s3, use el siguiente comando. Creará un bucket llamado mi-backup en su cuenta s3.

Snippet
s3cmd mb s3://mi-backup
 
Bucket 's3://mi-backup/' created

3. Subiendo archivo en Bucket

El siguiente comando cargará el archivo file.txt al bucket s3 usando el comando s3cmd.

Snippet
s3cmd put file.txt s3://mi-backup/
 
 
file.txt -> s3://mi-backup/file.txt  [1 of 1]
 190216 of 190216   100% in    0s  1668.35 kB/s  done

4. Subiendo un directorio al bucket s3


Si necesitamos cargar todo un directorio con sub-directorios, use el comando -r para cargarlo recursivamente.

Snippet
s3cmd put -r backup s3://mi-backup/
 
backup/file1.txt -> s3://mi-backup/backup/file1.txt  [1 of 2]
 9984 of 9984   100% in    0s    18.78 kB/s  done
backup/file2.txt -> s3://mi-backup/backup/file2.txt  [2 of 2]
 0 of 0     0% in    0s     0.00 B/s  done

5. Listar información del bucket s3

Enumera los elementos que contiene el bucket s3 usando el comando ls.

Snippet
s3cmd ls s3://mi-backup/
 
 
2013-09-03 10:58    DIR          s3://mi-backup/backup/
2013-09-03 10:58    190216   s3://mi-backup/file.txt

6. Descargar archivos del bucket s3

Si necesita descargar archivos del bucket s3, use los siguientes comandos para descargarlos.

Snippet
s3cmd get s3://mi-backup/file.txt
 
 
s3://mi-backup/file.txt -> ./file.txt  [1 of 1]
 4 of 4   100% in    0s    10.84 B/s  done

7. Eliminar datos del s3 bucket 

Para eliminar archivos y carpetas, utilice los siguientes comandos.

Snippet
# Remover un archivo del bucket s3
s3cmd del s3://mi-backup/file.txt
 
File s3://mi-backup/file.txt deleted
 
 
# Remover una carpeta del bucket s3
s3cmd del s3://mi-backup/backup
 
File s3://mi-backup/backup deleted

8. Remover S3 Bucket

Si ya no necesitamos el bucket s3, simplemente podemos eliminarlo usando el siguiente comando. Antes de remover el bucket, asegúrese de que esté vacío.

Snippet
s3cmd rb s3://mi-backup
 
 
ERROR: S3 error: 409 (BucketNotEmpty): The bucket you tried to delete is not empty

El comando anterior falló porque el depósito s3 no estaba vacío, primero elimina los elementos dentro del bucket y luego intenta eliminar de nuevo.

Espero esta nota sea de gran utilidad, yo lo utilizo diariamente con el crontab de mi sistema operativo para realizar backups de mis archivos.

Comments