Un comando per scaricare un file diverso da Wget [chiusa]
-
13-09-2019 - |
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?
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,
- Python - Come non recuperare i dati su HTTP
- Perl - File :: Fetch modulo
- TCL - :: http :: geturl , ha ad esempio alla fine
- Se avete il compilatore e FTP funziona, ottenere wget e compilarlo
Un'altra possibile alternativa è aria2 .