Ein Befehl eine andere Datei als wget zum Download [geschlossen]
-
13-09-2019 - |
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?
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,
- Python - Wie nicht zu holen Daten über HTTP
- Perl - File :: Fetch Modul
- TCL - :: http :: geturl hat beispielsweise am Ende
- Wenn Sie den Compiler und FTP funktioniert, wget erhalten und kompilieren
Eine weitere mögliche Alternative ist, aria2 .