Esto es lo que estoy haciendo cuando inicio sesión en un FTP:
ftp user:password@server
ftp: user:password@server: Unknown host
ftp> echo HELLO WORLD!
ftp> quit
Me gustaría hacer un comando FTP de una línea ...
ftp user:password@server -command "echo HELLO WORLD"
o
"echo HELLO WORLD" | ftp user:password@server
Algo similar ... como parte de un script que estoy tratando de crear. No se transfiere nada, solo necesito hacer eco de algunas instrucciones y esta es la forma más fácil que he encontrado de hacerlo entre dos de mis sistemas.
10.10
command-line
ftp
pipe
WernerCD
fuente
fuente
nick@AccessDenied:~$ ftp ftp> echo "hi" ?Invalid command ftp>
ftp
no tiene unecho
comandolftp
hace, pero es puramente local, así que no veo por qué te gustaría hacer eso por sí mismo ....Respuestas:
Eso realmente es más un trabajo para SSH (como otros han señalado), pero si está decidido a usar ftp, intente lftp . Está disponible gratuitamente para todas las versiones actualmente compatibles de Ubuntu. Puedes instalarlo con el comando
sudo apt install lftp
lftp documenta un
-c
conmutador que ejecuta el comando y luego se cierra, pero parece estar roto en la mayoría de las distribuciones.-e
lo mantendrá conectado a menos que emita unquit
.fuente
-c
funciona bien para mí en Ubuntu.~/.netrc
y asegurarse de que esté en modo0600
. FTP puede negociar contraseñas que no sean texto sin formato en el cable.Encontré este hilo cuando estaba buscando una manera de hacer que un solo comando ftp ejecute una transferencia de archivos desde esta máquina al servidor ftp. Aquí es cómo:
Cree un archivo con los comandos ftp: (llámelo 'ftpcommands.txt')
Luego ejecute el comando ftp y alimente el archivo en él:
La opción -n evita que ftp intente iniciar sesión automáticamente cuando recibe el comando 'abrir'.
Espero que eso ayude a alguien. No pude encontrar nada en línea que fuera esta solución, así que tuve que resolverlo yo mismo.
fuente
No puede usar FTP para ejecutar comandos de forma remota. Es sinónimo de Protocolo de transferencia de archivos. Lo que realmente necesitas es SSH.
Todo lo que necesita hacer es instalar el paquete
ssh
en ambas máquinas y luego seguir esta guía para configurar inicios de sesión sin contraseña.Y ahora cómo llamarlo:
ssh username@host echo "Hello World\!"
Por ejemplo, este soy yo haciéndolo a mí mismo:
fuente
Complementando la respuesta de @charlesbridge, incluya en su archivo ~ / .bashrc lo siguiente:
Fuente del archivo:
Ahora use el alias "yoursite" para iniciar sesión y ejecutar tantos comandos como desee.
fuente
Instale busybox usando:
busybox puede funcionar tanto en Linux como en sistemas embebidos, luego usa ftpget y ftpput
fuente