Pregunta

Mi anfitrión permite un acceso limitado a SSH y los comandos de Linux. Sin embargo, no puedo usar Wget lo creas o no.

Me esperaba algo para descargar un archivo (.flv) de otro servidor. ¿Hay otro comando que puedo intentar?

Si no hay, probablemente podría hacer uso de Python, Perl o PHP (favorito) para lograr una descarga de archivos. ¿Es posible?

¿Fue útil?

Solución

Puede utilizar el siguiente comando:

curl -O http://www.domain.com/file.flv

Otros consejos

echo -ne "GET /path/to/file HTTP/1.0\r\nHost: www.somesite.com\r\n\r\n" | nc www.somesite.com 80 | perl -pe 'BEGIN { while (<>) { last if $_ eq "\r\n"; } }'

Bash compilado con --enable-net-redirections es bastante potente. ( Zsh tiene características similares.) Heck, incluso vamos a lanzar autenticación básica de HTTP en, también.

Por supuesto, no es un HTTP muy buena / 1.1 cliente; que no soporta la codificación fragmentada, por ejemplo. Pero eso es bastante raro en la práctica.

read_http() {
    local url host path login port
    url="${1#http://}"
    host="${url%%/*}"
    path="${url#${host}}"
    login="${host%${host#*@}}"
    host="${host#${login}@}"
    port="${host#${host%:*}}"
    host="${host%:${port}}"
    (
        exec 3<>"/dev/tcp/${host}/${port:-80}" || exit $?
        >&3 echo -n "GET ${path:-/} HTTP/1.1"$'\r\n'
        >&3 echo -n "Host: ${host}"$'\r\n'
        [[ -n ${login} ]] &&
        >&3 echo -n "Authorization: Basic $(uuencode <<<"${login}")"$'\r\n'
        >&3 echo -n $'\r\n'
        while read line <&3; do
            line="${line%$'\r'}"
            echo "${line}" >&2
            [[ -z ${line} ]] && break
        done
        dd <&3
    )
}

otoh, si usted tiene LWP instalado, se debe enviar con un binario de ejemplo denominado GET ...

lynx -source

curl -C - -O http://www.url.com

script en Python:

#!/usr/bin/env python
import os,sys,urllib
f = open (os.path.basename (sys.argv[1]), 'w')
f.write (urllib.urlopen (sys.argv[1]).read ())
f.close ()

donde sys.argv[1] es la URL que le interesa.

Si usted está tratando de descargar un archivo desde un host que se haya autenticado el acceso a, trate de usar scp. Es como una copia normal, pero se hace a través de un túnel SSH. He encontrado que los anfitriones que permiten "ssh limitada" a menudo todavía permiten scp.

scp user@myhost.com:folder/file.flv ./

Se tendrá que proporcionar sus credenciales de usuario. Ver scp documentación para más información.

Otra herramienta que es por ahí que hace cosas similares es Snarf .

Uso SCP.

  

uso: SCP [-1246BCpqrv] [cifrado-c] [-F ssh_config] [-i identity_file]
             [Límite -l] [-o ssh_option] [puerto -P] [programa -S]
             [[Usuario @] sistpral1:] archivo1 ... [[usuario @] host2:] fichero2

varias maneras,

  1. Python - Cómo no obtener datos mediante HTTP

Otra alternativa posible es aria2 .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top