lftp: inicie sesión, coloque el archivo en el directorio remoto y salga con un solo comando: ayuda con citas adecuadas

lftp: inicie sesión, coloque el archivo en el directorio remoto y salga con un solo comando: ayuda con citas adecuadas

Quiero usar lftp -cpara hacer una sesión completa de una sola vez (ya que la iniciaré desde un script más adelante) y lo logré, -epero 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.conflas 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.

información relacionada