¿Cómo puedes descargar un archivo / zip desde la línea de comandos usando masilla?
Pregunta
Estoy tratando de escribir una secuencia de comandos por lotes (CMD @ Windows XP Pro) que automáticamente descargará y descomprimirá paquetes con la ayuda de 7zip and putty / psftp
Si tengo una URL de un paquete para descargar http://somesite.org/packages/package .zip ¿Cómo lo descargo en la línea de comandos usando masilla?
También si tiene una mejor manera de hacerlo, eso también sería útil.
Solución
wget es, por supuesto, una solución obvia, pero también sugiero echar un vistazo a cURL . Desde su página web:
curl es una herramienta de línea de comandos para transfiriendo archivos con sintaxis de URL, Soporta FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS y ARCHIVO. curl soporta SSL Certificados, HTTP POST, HTTP PUT, FTP carga, carga basada en forma HTTP, proxies, cookies, usuario + contraseña autenticación (Basic, Digest, NTLM, Negociar, kerberos ...), transferencia de archivos curriculum vitae, tunelización proxy y un busload de otros trucos útiles.
Por supuesto, libre y de código abierto, y a pesar de su enorme lista de protocolos compatibles, es tan fácil de usar como wget, así que use su ejemplo
curl -O http://somesite.org/packages/package.zip
descarga package.zip en un archivo local con el mismo nombre
curl -o myname.zip http://somesite.org/packages/package.zip
descarga package.zip como myname.zip
curl http://somesite.org/packages/package.zip > package.zip
redirige la salida estándar de curl a package.zip
EDITAR - ejemplo corregido, gracias a @PrabhakarKasi
Otros consejos
versión win32 de wget:
Putty no es realmente una herramienta de descarga. A menos que quiera descargar algo a través de SCP / SFTP. Así que sí, wget
es más útil aquí.
No sé masilla, pero ciertamente wget puede hacer. Si está en Windows, puede obtenerlo a través de cygwin o simplemente buscar en Google una versión win32.
pscp.exe -pw yourpassword you@somesite.org: /packages/package.zip. \
La ruta a /packages/package.zip debe ser cualquiera que sea la ruta a los archivos web públicos en el servidor. Entonces, por ejemplo, en un servidor apache antiguo, podría ser:
pscp.exe -pw yourpassword you@somesite.org: /users/httpd/vhosts/default/packages/package.zip. \
Use pscp, que viene con PuTTY:
pscp user@host:/path/to/file.7z .
7z e file.7z
Si configuras esto con SSH keys , pscp no tendrá que pedirte un contraseña.