LINUX

Secuencia de comandos de shell para cargar a ftp para probar la conexión

El objetivo principal de este script es monitorear el servidor FTP. Este script es un ejemplo de cómo usar el comando ftp en el shell bash. El administrador del sistema puede utilizar este script para comprobar si el servidor FTP está activo y cargar allí los datos / copias de seguridad.

Cada vez que el script crea un nuevo archivo, cada vez con una suma md5 diferente, después de que el script lo cargue en el servidor FTP, verifique md5sum de ambos archivos. Si md5sum es el mismo, eso significa que el archivo se cargó correctamente en el servidor FTP.

Shell Script para probar la carga de ftp

La siguiente carga de ftp de prueba de script de shell:

#!/bin/bash

function usage {

echo "Usage: $0"

echo "--ftpserver "

echo "--help - this help"

exit 1

}

if [ $# -eq 0 ]; then

usage

fi

while [ $# -gt 0 ]

do

case "$1" in

--ftpserver) HOST=$2;TIMEOUT=$3;shift;;

--help) usage;;

*) break;;

esac

shift

done

if [ x$HOST = "x" ]; then

usage

fi

### Global Variables

ORIG_DIR="/tmp/"

LOG_FILE="/tmp/ftp.log"

EMAIL="info@linoxide.com"

#next function will make all checks.
function check {
#few more variables
####VARIABLES

MAXTIMEOUT=300

ORIG_FILE="check.file"

FTPTIMEOUT='20'

USERNAME="user"

FOLDER="test"

PASSWORD="password"

DATAFOLDER="somefolder"

cd $ORIG_DIR

echo -n "Creating file … "
dd if=/dev/urandom of=$ORIG_DIR/$ORIG_FILE bs=104857 count=150 > /dev/null 2>&1
echo "Done"
echo -n "Uploading file … "
ftp -inv < $LOG_FILE

open $HOST

user $USERNAME $PASSWORD

cd $FOLDER/$DATAFOLDER

binary

passive

put $ORIG_FILE

quote size $ORIG_FILE

close

bye

EOF

echo " DONE"

echo -n "Checking MD5 sum ... "

ftp -inv <> $LOG_FILE

open $HOST

user $USERNAME $PASSWORD

cd $FOLDER/$DATAFOLDER

passive

binary

quote size $ORIG_FILE

dir

quote XMD5 $ORIG_FILE

close

bye

EOF

MD5=`tail -2 $LOG_FILE | head -1 | awk '{print $2}' | tr [:upper:] [:lower:]`

ftp -in </dev/null

open $HOST

user $USERNAME $PASSWORD

cd $FOLDER/$DATAFOLDER
delete $ORIG_FILE

close

bye

EOF

MD5_ORIG=`/usr/bin/md5sum $ORIG_FILE | awk '{print $1}'`

if [ x"${MD5}" != x"${MD5_ORIG}" ]; then

RESULT=" File corrupted."

else

RESULT=" MD5 sum OK "

fi

echo $RESULT

rm $ORIG_FILE

}

check

Salida de script de shell

./ftp.sh --ftpserver ftp.example.com 20

Uploading file ... DONE

Checking MD5 sum ... MD5 sum OK

Entendiendo el guión anterior

# Dado que habrá pocas veces de usar los mismos comandos, crearemos una función con uso de nombre
# Esta función solo nos mostrará el menú de ayuda y saldrá del script.

uso de la función {

echo «Uso: $ 0»

#le decimos al usuario qué argumentos espera el script
echo «–ftpserver»

echo «–help – esta ayuda»

# ya que no es argumento de mal argumento – salir del script
salida 1

}

# Verificamos si el usuario pasa parámetros al script

si [ $# -eq 0 ]; entonces

# si no hay parámetros, simplemente ejecute el uso de la función que muestra el menú de ayuda
uso

fi

mientras [ $# -gt 0 ] #si el usuario pasa algunos parámetros, verificamos cada uno

hacer

caso «$ 1» en # tomamos el primer argumento pasado por el usuario
# si el usuario pasa –ftpserver como primer parámetro, el segundo será el nombre del servidor ftp y el tercero el tiempo de espera.
–ftpserver) HOST = $ 2; TIMEOUT = $ 3; shift ;;

#si el usuario pasa –ayuda como parámetro, acabamos de mostrar el menú de ayuda
–ayuda) uso ;;
# si pasó algo más, simplemente salga del script
*) descanso;;

esac

cambio

hecho #finish of while loop

#si el usuario no pasó el nombre del servidor ftp – mostramos el menú de ayuda
si [ x$HOST = «x» ]; entonces

uso

fi

## Usaremos algunas variables, así que en las próximas líneas solo pongamos sus valores.
### Variables globales

ORIG_DIR = «/ tmp /»

LOG_FILE = «/ tmp / ftp.log»

EMAIL = «info@linoxide.com»

La función #next hará todas las comprobaciones.
control de funcionamiento {
# pocas variables más
#### VARIABLES

TIEMPO MÁXIMO = 300

ORIG_FILE = «archivo de verificación»

FTPTIMEOUT = ’20 ‘

USERNAME = «usuario»

FOLDER = «prueba»

PASSWORD = «contraseña»

DATAFOLDER = «alguna carpeta»
#entrando carpeta temporal
cd $ ORIG_DIR

#con dd generamos un archivo de 15Mb con nombre de la variable $ ORIG_FILE y con contenido aleatorio.
echo -n «Creando archivo …»
dd if = / dev / urandom of = $ ORIG_DIR / $ ORIG_FILE bs = 104857 count = 150> / dev / null 2> & 1
echo «Hecho»
# Esto le dice al usuario que comenzamos a cargar el archivo.
echo -n «Subiendo archivo …»
# usamos el comando ftp para cargar el archivo, -i desactiva las solicitudes interactivas
ftp -inv <$ LOG_FILE
#connect to host
abrir $ HOST
#conectarse con usuario y contraseña
usuario $ USERNAME $ PASSWORD
#cd a alguna carpeta de prueba
cd $ FOLDER / $ DATAFOLDER
#le decimos al servidor ftp que usaremos el modo binario
binario
# usaremos el modo pasivo
pasivo
# este comando copia el archivo local al servidor ftp
poner $ ORIG_FILE
#obtención del tamaño del archivo eliminado
tamaño de cotización $ ORIG_FILE
#closing connection
cerrar

adiós
# salir del comando ftp
EOF
#decirle al usuario que la carga se completó
echo «HECHO»
#comenzando la verificación md5
echo -n «Comprobando suma MD5 …»
#lo mismo que arriba
ftp -inv <> $ LOG_FILE

abrir $ HOST

usuario $ USERNAME $ PASSWORD

cd $ FOLDER / $ DATAFOLDER

pasivo

binario

tamaño de cotización $ ORIG_FILE

dir
#obteniendo md5 del archivo remoto
cotizar XMD5 $ ORIG_FILE

cerrar

adiós

EOF
#obteniendo el valor md5sum del archivo de registro, ya que estará en mayúsculas lo convertimos a minúsculas con tr
MD5 = `tail -2 $ LOG_FILE | cabeza -1 | awk ‘{imprimir $ 2}’ | tr [:upper:] [:lower:]’

#necesitamos conectarnos al servidor remoto una vez más para eliminar el archivo
ftp -in

abrir $ HOST

usuario $ USERNAME $ PASSWORD

cd $ FOLDER / $ DATAFOLDER
#este comando elimina el archivo remoto
eliminar $ ORIG_FILE

cerrar

adiós

EOF

#con el comando md5sum obtenemos md5sum del archivo local
MD5_ORIG = `/ usr / bin / md5sum $ ORIG_FILE | awk ‘{imprimir $ 1}’ `
# esta línea compara md5sums, y la variable RESULT contendrá el mensaje de acuerdo con la verificación
si [ x»${MD5}» != x»${MD5_ORIG}» ]; entonces

RESULTADO = «Archivo dañado».

demás

RESULTADO = «Suma MD5 OK»

fi

# Esto le dirá al usuario si el archivo se cargó correctamente o no.
echo $ RESULTADO
# eliminar archivo local
rm $ ORIG_FILE
# fin de función
}
#para ejecutar la función (sin argumentos)
controlar

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba
Cerrar