Quiero automatizar una llamada a ftp en un script de shell. Si escribo
$ftp somehost.domain.com
Se me solicita un nombre de usuario y contraseña. Quiero dar ese nombre de usuario y contraseña como parte de la llamada a ftp. La página de manual de ftp dice que puedo emitir un comando de usuario en el indicador de ftp, pero quiero iniciar sesión en ftp de una sola vez. ¿Es eso posible? No veo nada en las banderas para ftp. Veo que la opción -s me da la opción de especificar algunos comandos ftp una vez que tengo el indicador ftp, pero necesito dar el nombre de usuario para acceder al indicador ...
expect
(una especie de extensión tcl / tk) es un programa ideal para este tipo de cosas, es decir. espere algún aviso; dar una respuesta ... esperar una respuesta; dar una nueva respuesta ...expect
espere "ogin:" y envíe su nombre de usuario, luego espere "assword:" y envíe su contraseña.Respuestas:
Use un
.netrc
archivo en su directorio de inicio.El contenido es:
Si esto es algo que está haciendo mediante programación, escriba
.netrc
antes de conectarse, elimínelo cuando haya terminado.fuente
ftp
o también lo leen otros programas?netrc(5)
página del manual dice que es "paraftp(1)
", pero no estoy seguro de queftp
sea lo único que lo usará.locate '.netrc'
También puede escribir un script de shell ac usando un documento aquí que iría más o menos así:
fuente
También puede considerar
wput
owget
como alternativas, según sus necesidades.No lo he usado
wget
recientemente, pero lo he hechowput
porque no quería crear o modificar archivos como se sugiere en algunas respuestas anteriores.Para
wput
, la sintaxis es:fuente