Domanda

Il mio ospite consente un accesso limitato a SSH e comandi di Linux. Tuttavia, non posso usare Wget ci crediate o no.

speravo in qualcosa per scaricare un programma (.flv) da un altro server. C'è un altro comando che posso provare?

Se non c'è, probabilmente potrei fare uso di Python, Perl o PHP (preferito) per ottenere un file di download. E 'possibile?

È stato utile?

Soluzione

È possibile utilizzare il seguente comando:

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

Altri suggerimenti

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 compilato con --enable-net-redirections è abbastanza potente. ( Zsh ha caratteristiche simili.) Heck, io anche buttare HTTP Auth di base qui, anche.

Naturalmente, non è un ottimo client HTTP / 1.1; non supporta la codifica Chunked, per esempio. Ma questo è piuttosto raro nella pratica.

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, se avete installato LWP , dovrebbe essere spedito con un binario esempio denominato GET ...

lynx -source

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

script 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 ()

dove sys.argv[1] è l'URL che ti interessa.

Se stai cercando di scaricare un file da un host è stato autenticato l'accesso a, provare a utilizzare scp. E 'come una copia normale, ma viene fatto attraverso un tunnel SSH. Ho scoperto che gli host che consentono la "ssh limitata" spesso consentono ancora scp.

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

Sarà necessario fornire le credenziali dell'utente. Vedere scp documentazione per ulteriori informazioni.

Un altro strumento che è là fuori che fa cose simili è snarf .

Usa SCP.

  

Utilizzo: SCP [-1246BCpqrv] [cifrario -c] [-F ssh_config] [-i identity_file]
             [Limite -l] [-o ssh_option] [-p porta] [-S programma]
             [[Utente @] host1:] file1 ... [[user @] host2:] file2

I vari modi,

  1. Python - Come non recuperare i dati su HTTP

Un'altra possibile alternativa è aria2 .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top