Shell Script para descargar archivos desde un directorio de origen en un servidor FTP remoto

En este artículo, vamos a escribir un script de shell para descargar archivos desde un determinado directorio en un servidor a una computadora local usando FTP. Se recomienda tener algún conocimiento de FTP antes de leer este artículo, pero no es necesario.

Antes de escribir un script de shell, veremos cómo descargar un archivo directamente usando comandos, luego lo extenderemos a un script.

Los comandos FTP para descargar archivos son «get» y «mget» , que se utilizan para descargar uno o varios archivos, respectivamente. Estos comandos deben ingresarse dentro de un indicador de FTP. Los archivos siempre se descargan desde el «directorio actual» en el servidor. No hay forma de especificar de qué directorio descargar, por lo que primero tenemos que cambiar al directorio de origen requerido antes de descargar.

Una lista de comandos útiles para descargar archivos (los ejemplos se muestran en el problema a continuación):

1. get filename         #download file
2. mget file1 file2     #download multiple files
3. cd dirname              #change remote directory
4. lcd dirname          #change local directory
5. ftp hostname          #login to ftp server
6. bye                    #terminate ftp connection and quit ftp

Considere el siguiente problema para comprender la descarga de archivos mediante FTP:

Descargue 2 archivos «f1.txt» y «program1.c» del directorio src dentro del servidor al directorio dst dentro de la computadora local.

Shell Script para descargar los archivos desde un directorio de origen en un servidor FTP remoto

Servidor actual y estructura del directorio local

Implementación paso a paso para descargar:

Paso 1: Primero, inicie sesión en ftp usando el comando «ftp hostname» e ingrese los detalles de inicio de sesión.

Shell Script para descargar los archivos desde un directorio de origen en un servidor FTP remoto

Paso 1: Iniciar sesión en FTP

Paso 2: Cambie al directorio src en el servidor usando «cd src» y también cambie al directorio dst en la computadora local usando «lcd dst».

Paso 2: Cambie a los directorios requeridos tanto en el servidor como en la computadora local

Paso 3: Ahora escriba » mget file1.txt program1.c» para descargar los archivos. Luego escriba «adiós» para finalizar la conexión FTP y salir del mensaje de FTP.

Paso 3: Descargar archivos y salir de ftp

Un script de shell para realizar descargas en Stepwise:

Paso 1: primero, almacene los detalles de inicio de sesión de FTP en variables dentro del script. Estos valores no cambian, por lo que no necesita preguntarle al usuario cada vez, y hace que iniciar sesión en el servidor sea conveniente.

HOST = "192.168.0.104"    #Server's hostname
USER = "lapowner"            #Server login username
PASSWORD = "1234asdf@Z"    #Server login password

Paso 2: tome el directorio de origen y una lista de archivos para descargar como entrada a través de argumentos para el script.

SOURCE = $1        
#$1 is the first argument to the script

ALL_FILES="${@:2}" 
#${@:2} is the list of arguments without the first one

Paso 3: escriba el comando FTP con los parámetros -inv o -i -n -v.

Los parámetros se describen a continuación:

Parámetro Descripción
-i Deshabilitar el modo interactivo en ftp. Al usar esto, ftp no pedirá confirmación para cada archivo que se descargue.
-norte Ayuda a iniciar sesión manualmente en ftp usando «usuario $NOMBRE DE USUARIO $CONTRASEÑA». Sin, este ftp asumiría el nombre de usuario de su escritorio local como el nombre de usuario del servidor.
-v Modo detallado para ftp. Esto hace que la salida sea más detallada.

Además, suministre comandos FTP (como mget, etc.) a FTP a través de la redirección de entrada usando «<<«. Use «EOF» para marcar el comienzo y el final de la entrada a FTP.

ftp -inv $HOST <<EOF #Begin input to FTP
user $USER $PASSWORD
cd $SOURCE
mget $ALL_FILES
bye
EOF  #End input to FTP

Paso 4: Ejecute el script con los argumentos i) el directorio de origen y ii) una lista de archivos:

./script.sh file1     
#for downloading file1

./script.sh *.c file1 
#for downloading file1 and all c files

Complete el script de Shell para descargar archivos desde un directorio de origen en un servidor FTP remoto:

#!/bin/bash

HOST = "192.168.0.104"
USER = "lapowner"
PASSWORD = "1234asdf@Z"

SOURCE = $1
ALL_FILES = "${@:2}"

ftp -inv $HOST <<EOF
user $USER $PASSWORD
cd $SOURCE
mget $ALL_FILES
bye
EOF

Producción:

Shell Script to download the files from a source directory on a remote FTP server

Publicación traducida automáticamente

Artículo escrito por shameedoffice y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *