miércoles, 26 de enero de 2022

AWS cli: recuperar versión de un fichero en S3



Cómo recuperar una versión concreta de un fichero alojado en un bucket S3 de AWS.



Veamos cómo recuperar una versión concreta de un fichero alojado en un bucket S3 de AWS.

En este ejemplo, el bucket se llama "blai-1".

Primero de todo, debemos tener habilitado o habilitar el versionado:

[ec2-user@ip-10-5-0-143 ~]$ aws s3api put-bucket-versioning --bucket s3-blai-1 --versioning-configuration Status=Enabled

Imaginemos que tenemos 3 ficheros en el bucket "blai-1":

[ec2-user@ip-10-5-0-143 ~]$ aws s3 ls s3://s3-blai-1/files/ 2021-11-24 11:56:31 30318 file1.txt 2021-11-24 11:56:32 43784 file2.txt 2021-11-24 11:56:32 96675 file3.txt

Borramos file1.txt en local:

[ec2-user@ip-10-5-0-143 ~]$ sudo rm files/file1.txt sudo rm files/file1.txt

Hacemos un sync de archivos con el flag delete (borra en el bucket aquello que no exista en local):

[ec2-user@ip-10-5-0-143 ~]$ aws s3 sync files s3://s3-blai-1/files/ --delete delete: s3://s3-blai-1/files/file1.txt

Tras la instrucción anterior, listamos los ficheros presentes en el bucket:

[ec2-user@ip-10-5-0-143 ~]$ aws s3 ls s3://s3-blai-1/files/ 2021-11-24 11:56:32 43784 file2.txt 2021-11-24 11:56:32 96675 file3.txt

Observamos que file1.txt ya no existe.

De repente necesitamos el file1.txt. Listamos sus versiones:

[ec2-user@ip-10-5-0-143 ~]$ aws s3api list-object-versions --bucket s3-blai-1 --prefix files/file1.txt { "DeleteMarkers": [ { "Owner": { "DisplayName": "aws038351", "ID": "2a6f0ac58291262d92b44b112cda554a8cf030cd5d4d742a7b60af5a5b89fd86" }, "IsLatest": true, "VersionId": "Nd1QvuJY56xi7nFHSC2ej_3nvm7xvw1u", "Key": "files/file1.txt", "LastModified": "2021-11-24T11:57:35.000Z" } ], "Versions": [ { "LastModified": "2021-11-24T11:56:31.000Z", "VersionId": "M3YMFwyIciILCfa.VX3pRdlLJkheUjy1", "ETag": "\"b76b2b775023e60be16bc332496f8409\"", "StorageClass": "STANDARD", "Key": "files/file1.txt", "Owner": { "DisplayName": "aws038351", "ID": "2a6f0ac58291262d92b44b112cda554a8cf030cd5d4d742a7b60af5a5b89fd86" }, "IsLatest": false, "Size": 30318 } ] }

Recuperamos la versión M3YMFwyIciILCfa.VX3pRdlLJkheUjy1 del fichero file1.txt, con fecha 2021-11-24T11:56:31.000Z:

[ec2-user@ip-10-5-0-143 ~]$ sudo aws s3api get-object --bucket s3-blai-1 --key files/file1.txt --version-id M3YMFwyIciILCfa.VX3pRdlLJkheUjy1 files/file1.txt { "AcceptRanges": "bytes", "ContentType": "text/plain", "LastModified": "Wed, 24 Nov 2021 11:56:31 GMT", "ContentLength": 30318, "VersionId": "M3YMFwyIciILCfa.VX3pRdlLJkheUjy1", "ETag": "\"b76b2b775023e60be16bc332496f8409\"", "Metadata": {} }

Listamos los ficheros en local:

[ec2-user@ip-10-5-0-143 ~]$ ls -la 2022-01-26 11:56:31 30318 file1.txt 2021-11-24 11:56:32 43784 file2.txt 2021-11-24 11:56:32 96675 file3.txt

Sincornizamos los ficheros hacia el bucket:

[ec2-user@ip-10-5-0-143 ~]$ aws s3 sync files s3://s3-blai-1/files/ upload: files/file1.txt to s3://s3-blai-1/files/file1.txt

Listamos los ficheros del bucket:

[ec2-user@ip-10-5-0-143 ~]$ aws s3 ls s3://s3-blai-1/files/ 2022-01-26 11:00:18 30318 file1.txt 2021-11-24 11:56:32 43784 file2.txt 2021-11-24 11:56:32 96675 file3.txt

Tras el sync, file1.txt vuelve a estar presente.
0

miércoles, 5 de enero de 2022

Elegir versión de paquete a instalar en SUSE Linux



Cómo elegir qué versión instalar de un paquete en SLES (SUSE Linux Enterprise Server).



Si necesitas instalar una versión específica de un paquete en SLES, puedes hacerlo agregando el repositorio correspondiente y utilizando zypper. A continuación, te explico cómo hacerlo paso a paso.

Para instalar la versión 7.3.19 del paquete apache2-mod_php7, primero debes agregar el repositorio de desarrollo donde se encuentran los binarios de PHP 7.3.19:

HOST # zypper ar https://download.opensuse.org/repositories/devel:/languages:/php:/php73/openSUSE_Leap_15.1/ PHP7-test

Luego, refresca los repositorios con:

HOST # zypper ref

Una vez añadido el repositorio y actualizados los índices, instala el módulo de PHP para Apache con:

HOST # zypper in apache2-mod_php7

Este comando instalará la versión más reciente de apache2-mod_php7 disponible en el repositorio añadido. Si deseas ver todas las versiones disponibles antes de instalar, puedes listar las opciones con:

HOST # zypper se -s apache2-mod_php7

Si necesitas instalar una versión específica de PHP, como la 7.3.19, usa el siguiente comando:

HOST # zypper in apache2-mod_php7=7.3.19

Recuerda que siempre es recomendable realizar una copia de seguridad antes de cambiar versiones de paquetes en el sistema para evitar problemas con la configuración o dependencias.

Si en algún momento necesitas cambiar de versión o hacer un downgrade de PHP, primero obtén una lista de las versiones disponibles con:

HOST # zypper se -s apache2-mod_php7

Para forzar la instalación de una versión específica, usa:

HOST # zypper install --force apache2-mod_php7=7.3.19

Durante el proceso, el sistema te pedirá confirmar la acción seleccionando una opción de entre las disponibles en la lista y luego confirmando con "y".

Para más información, puedes consultar la documentación oficial de SUSE en:

https://www.suse.com/es-es/support/kb/doc/?id=000018011
0