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.

Leer variables como credenciales desde el archivo del servidor.

Este es mi primer post y también mis primeros pasos en bash.
Quería crear una función de respaldo automatizado del servidor FTP para hacer mi vida más fácil. Como me sentí bien haciendo este script, comencé a trabajar en mejoras para él y actualmente se me acabaron las ideas.
Quería hacer que el script de respaldo descargue todos los archivos del servidor FTP y definí las credenciales como variables (de las cuales estoy orgulloso jaja) pero luego me di cuenta de que puedo usar el mismo script para todos mis servidores, pero tendré que almacenar las credenciales de inicio de sesión en un archivo separado.
El problema es que no puedo hacer que mi script lea estos valores para el procesamiento de respaldo y permanecen en blanco tal como veo en la salida.
Si alguien tiene alguna idea de cómo puedo hacer que lea mis credenciales y el nombre del servidor desde un archivo separado, ¡se lo agradecería!
A continuación encontrarás mis archivos y scripts en el orden en que se procesan:

‘start_backup.sh’

#!/bin/sh

Cargar credenciales

/home/user/scripts/credentials.sh

Lanzar script de respaldo

/home/user/scripts/my_ovh_backup.sh

‘credentials.sh’

#!/bin/sh
my_ovh_server=”(aquí se coloca la dirección del servidor)”
my_ovh_login=”(aquí se coloca el inicio de sesión)”
my_ovh_password=”(aquí se coloca la contraseña)”

‘my_ovh_backup.sh’

Ruta que se debe copiar

backup_files=”/(ruta en el servidor)”

Dónde realizar el respaldo

dest=”/home/user/ftp_backup”
data=$(date +%y-%m-%d)

Crear carpeta con la fecha actual

mkdir $dest/en_progreso_$data

Copiar datos

cd $dest/en_progreso_$data
wget -r -nc ftp://$my_ovh_login:$my_ovh_password@$my_ovh_server/$backup_files

Renombrar la carpeta después de completar la descarga

mv $dest/en_progreso_$data $dest/$data

Limpieza

rm -r $dest/$data

Salida que recibo:

./start_backup.sh
ftp://:@//(carpeta remota)/: Nombre de host no válido.
Agregando: home/user/ftp_backup/22-01-02/ (almacenado 0%)

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para que tu script lea los valores para el procesamiento de respaldo desde un archivo separado, puedes modificar el archivo credentials.sh para exportar las variables en lugar de solo establecerlas. Esto permitirá que otros scripts accedan a los valores.

    Aquí tienes un ejemplo de cómo puedes modificar el archivo credentials.sh:

    #!/bin/sh
    export my_ovh_server="(aquí va la dirección del servidor)"
    export my_ovh_login="(aquí va el nombre de usuario)"
    export my_ovh_password="(aquí va la contraseña)"
    

    Luego, en tu script start_backup.sh, necesitas cargar el archivo credentials.sh en lugar de simplemente ejecutarlo, para que las variables se exporten y estén disponibles para otros scripts.

    Así es como puedes modificar tu archivo start_backup.sh:

    #!/bin/sh  
    # Cargar las credenciales
    source /home/user/scripts/credentials.sh
    
    # Ejecutar el script de respaldo
    /home/user/scripts/my_ovh_backup.sh
    

    Al cargar el archivo credentials.sh, exportará las variables y las pondrá a disposición del script my_ovh_backup.sh.

    Con esta modificación, tu script ahora debería poder leer tus credenciales y el nombre del servidor desde el archivo separado.

Comments are closed.