Frage

Ihr Host ermöglicht eingeschränkten Zugriff auf SSH und Linux-Befehle. Allerdings kann ich nicht benutzen Wget es glauben oder nicht.

Ich habe gehofft, für etwas eine Datei (.flv) von einem anderen Server zum Download bereit. Gibt es einen anderen Befehl, den ich versuchen kann?

Wenn nicht, könnte ich wahrscheinlich Verwendung von Python, Perl oder PHP (Favoriten) mache eine Datei herunterladen zu erreichen. Ist es möglich?

War es hilfreich?

Lösung

Sie können den folgenden Befehl verwenden:

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

Andere Tipps

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 mit --enable-net-redirections kompiliert ist ziemlich mächtig. ( Zsh hat ähnliche Eigenschaften.) Heck, ich auch HTTP Basic Auth hier werfen würde, auch.

Natürlich ist es kein sehr gutes HTTP / 1.1-Client; es unterstützt nicht aufgeteilte Codierung, zum Beispiel. Aber das ist ziemlich selten in der Praxis.

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, wenn Sie Perl LWP installiert ist, sollte es mit einer Probe binären Schiff mit dem Namen GET ...

lynx -source

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

Python-Skript:

#!/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 ()

wo sys.argv[1] ist die URL, die Sie interessieren.

Wenn Sie versuchen, eine Datei von einem Host zum Download Sie den Zugriff auf authentifiziert haben, versuchen scp verwenden. Es ist wie eine normale Kopie, aber es wird über einen SSH-Tunnel erfolgen. Ich habe festgestellt, dass Hosts, die „begrenzte ssh“ oft noch erlaubt scp ermöglichen.

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

Sie müssen Ihre Benutzerdaten zur Verfügung zu stellen. Siehe scp Dokumentation für weitere Informationen.

Ein weiteres Werkzeug, die es gibt, die ähnliche Sachen tut, ist snarf .

Mit scp.

  

Nutzung: scp [-1246BCpqrv] [-c Chiffre] [-F ssh_config] [-i identity_file]
             [-L Grenze] [-o ssh_option] [-P port] [-S-Programm]
             [User [@] host1:] file1 ... [[user @] host2:] file2

Verschiedene Wege,

  1. Python - Wie nicht zu holen Daten über HTTP

Eine weitere mögliche Alternative ist, aria2 .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top