es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Script de Shell para descomprimir automáticamente el último archivo de base de datos.

Tengo una carpeta donde se almacenan las nuevas versiones de archivos de base de datos comprimidos. Cada nueva versión de la base de datos tiene una convención de nomenclatura de archivo que indica cuándo se creó. Siempre que sea necesario restaurar una base de datos, es la última versión en la carpeta. Aquí están los contenidos del archivo sh:

Ruta al archivo Zip

filename=”/Users/Documents/development/code/docker/data/2021_10_30_ _17_37_36.nombre_de_archivo_db_backup_sql.qz”

# Restaurar
gunzip < $filename | docker exec -i database /usr/bin/mysql -u root -p$MYSQL_ROOT_PASSWORD $MYSQL_DATABASE

Lo que me gustaría tener es el script de shell cargue automáticamente la última base de datos sin tener que actualizar el script de shell con un nuevo nombre de archivo cada vez.

Me gustaría que el script busca todos los archivos en la carpeta, analice los nombres de archivo e identifique automáticamente el último y lo cargue.

El formato del nombre de archivo es:
AAAAMMDD_HHMMSS.nombredelarchivo_db_backup_sql.qz

Escribir scripts de shell no es mi especialidad, así que cualquier ayuda sería muy apreciada.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Puede utilizar el siguiente script de shell para lograr lo que desea:

    #!/bin/bash
    
    # Obtener el archivo más reciente en la carpeta
    latest_file=$(ls -t /Users/Documents/development/code/docker/data/*.filename_db_backup_sql.qz | head -1)
    
    # Ruta al archivo Zip
    filename=$latest_file
    
    # Restaurar
    gunzip < $filename | docker exec -i database /usr/bin/mysql -u root -p$MYSQL_ROOT_PASSWORD $MYSQL_DATABASE
    

Comments are closed.