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 ...expectespere "ogin:" y envíe su nombre de usuario, luego espere "assword:" y envíe su contraseña.Respuestas:
Use un
.netrcarchivo en su directorio de inicio.El contenido es:
Si esto es algo que está haciendo mediante programación, escriba
.netrcantes de conectarse, elimínelo cuando haya terminado.fuente
ftpo también lo leen otros programas?netrc(5)página del manual dice que es "paraftp(1)", pero no estoy seguro de queftpsea 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
wputowgetcomo alternativas, según sus necesidades.No lo he usado
wgetrecientemente, pero lo he hechowputporque no quería crear o modificar archivos como se sugiere en algunas respuestas anteriores.Para
wput, la sintaxis es:fuente