Quiero usar lftp -c
para hacer una sesión completa de una sola vez (ya que la iniciaré desde un script más adelante) y lo logré, -e
pero eso normalmente me deja con la sesión interactiva que no quiero.
Estados manuales
-c commands
Execute the given commands and exit. Commands can be separated with a semicolon, `&&'
or `||'. Remember to quote the commands argument properly in the shell. This option
must be used alone without other arguments.
Pero no entiendo cómo debo citar y encadenar mis comandos/interacciones correctamente.
lftp -e "put -O remote/dir/ /local/file.txt" -u user,pass ftpsite.com
Funciona excelente. Pero quiero salir después de ejecutar el comando;
lftp -c "open -u user,pass ftpsite.com" || put -O "remote/dir/ /local/file.txt"
simplemente me grita, o de hecho cualquier combinación de citas que probé ( ||
o &&
independientemente)
Respuesta1
$ lftp -c "open -u user,pass ftpsite.com; put -O remote/dir/ /local/file.txt"
Deberías hacerlo.
Si esto no funciona, intente agregar /etc/lftp.conf
las siguientes líneas:
set ftp:ssl-protect-data true
set ftp:ssl-force true
set ftp:ssl-auth TLS
set ssl:verify-certificate no
Respuesta2
lftp -e "put -O remote/dir/ /local/file.txt; bye" -u user,pass ftpsite.com
Respuesta3
lftp -e "put -O remote/dir/ /local/file.txt; bye" ftp.yourhost.com
y coloque sus credenciales en ~/.netrc como
machine ftp.yourhost.com login your_username password your_password
Poner contraseñas en el cli es absolutamente imposible, ya que incluso son legibles cuando se usa ps -aux durante la carga... junto al historial de bash también.