Saltar al contenido

Ejecutar comando en conexión sftp a través de script

Solución:

Puede cambiar su secuencia de comandos para pasar comandos en un documento aquí, por ejemplo,

#!/bin/bash

sftp -oPort=23 [email protected]:/home/kalenpw/TestWorld/plugins <<EOF
put /home/kalenpw/.m2/repository/com/Khalidor/TestPlugin/0.0.1-SNAPSHOT/TestPlugin-0.0.1-SNAPSHOT.jar   
exit
EOF

los << marcador seguido del nombre (EOF) le dice al script que pase las siguientes líneas hasta que el nombre se encuentre al principio de la línea (por sí mismo).

Puede que prefieras usar scp en lugar de sftp. scp se comporta como el ordinario cp comando lo hace, pero los archivos pueden ser remotos:

scp -P 23 /home/kalenpw/.m2/repository/com/Khalidor/TestPlugin/0.0.1-SNAPSHOT/TestPlugin-0.0.1-SNAPSHOT.jar [email protected]:/home/kalenpw/TestWorld/plugins

Esto copia el archivo en su máquina local en un directorio en la máquina remota sin tener que usar la interfaz de comando estilo ftp de la vieja escuela.

los ssh, scp, y sftp los servicios suelen estar disponibles si alguno de ellos lo está; el mismo programa demonio los proporciona todos simultáneamente. En principio, el administrador del servidor podría optar por desactivar cualquiera de ellos, pero en la práctica eso es bastante raro.

También puede utilizar el -b opción de sftp para indicar un archivo que contiene comandos para sftp.

Por ejemplo, puede poner todos sus comandos en un archivo sftp_commands.txt:

cd /home/kalenpw/TestWorld/plugins
put /home/kalenpw/.m2/repository/com/Khalidor/TestPlugin/0.0.1-SNAPSHOT/TestPlugin-0.0.1-SNAPSHOT.jar
exit

y correr sftp como:

sftp -oPort=23 -b sftp_commands.txt [email protected]:/home/kalenpw/TestWorld/plugins 

O también puede pasar los comandos a través de STDIN si no desea utilizar un archivo.

De man sftp:

-b archivo por lotes

El modo por lotes lee una serie de comandos de un archivo por lotes de entrada en lugar de stdin. Dado que carece de interacción con el usuario, debe utilizarse junto con la autenticación no interactiva. Se puede usar un archivo por lotes de ‘-‘ para indicar una entrada estándar. sftp abortará si alguno de los siguientes comandos falla: get, put, reget, rename, ln, rm, mkdir, chdir, ls, lchdir, chmod, chown, chgrp, lpwd, df, symlink y lmkdir. La terminación en caso de error se puede suprimir comando por comando prefijando el comando con un carácter ‘-‘ (por ejemplo, -rm / tmp / blah *).

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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