/ / ¿Cómo puedo usar FTP y SFTP juntos? - ftp, sftp

¿Cómo puedo usar FTP y SFTP juntos? - ftp, sftp

Necesito hacer un script de Unix, donde necesito las funciones FTP y SFTP. Déjame describir en detalles:

Necesito importar algunos archivos del servidor remoto,ahora estos servidores remotos soportan ftp o SFTP no ambos. Así que necesito una secuencia de comandos donde mi secuencia de comandos intente hacer ftp primero y si tiene éxito, salga de la secuencia de comandos y, si no, intente hacer SFTP en ese servidor.

Probé el siguiente script:

log=/opt/app/vertica/cdr/tmp/hpcom/sftp.txt
LOGINID=abc
HOST=sftp2.xyz.com
echo "starting ftp & sftp...." > $log
ftp -i -n -v $HOST <<-EOFtp >$log
user $LOGINID $PASSWD
bye
EOFtp
rc=$?
if [[ $rc = 0 ]]; then
echo "Successful ftp...$rc" `date "+%Y-%m-%d-%H.%M.%S"` >> $log
else
sftp  $LOGINID@$HOST<<EOF > $log
#cd $DIR
#get $FILE
bye
EOF
rc1=$?
if [[ $rc1 != 0 ]]; then
echo "Error occured...$rc" `date "+%Y-%m-%d-%H.%M.%S"` >> $log
else
echo "Successful sftp...$rc" `date "+%Y-%m-%d-%H.%M.%S"` >> $log
fi
fi

En el código anterior, mi secuencia de comandos no funciona como debería ... a continuación se muestra la salida del archivo de registro

"Not connected.
Successful ftp...0 2014-01-30-10.03.06"

Muestra claramente que FTP no está ocurriendo en este host, por lo que idealmente debería intentar hacer SFTP pero no está llegando a la sintaxis de SFTP sino que está saliendo del script ...

Espero haberlo incluido todo, por favor avíseme si necesita más información para ayudar con esto.

Respuestas

1 para la respuesta № 1

Debe usar "-eq" en lugar de "=" cuando compare números:

if [[ $rc -eq 0 ]]; then...

if [[ $rc1 -ne 0 ]]; then...