私のホストは、SSHおよびLinuxコマンドへの制限付きアクセスを許可しています。しかし、信じられないかもしれませんが、 Wgetを使用することはできません。
別のサーバーからファイル(.flv)をダウンロードするものが欲しいと思っていました。私が試すことができる別のコマンドはありますか?
そうでない場合は、Python、Perl、またはPHP(お気に入り)を使用してファイルをダウンロードすることができます。出来ますか?
私のホストは、SSHおよびLinuxコマンドへの制限付きアクセスを許可しています。しかし、信じられないかもしれませんが、 Wgetを使用することはできません。
別のサーバーからファイル(.flv)をダウンロードするものが欲しいと思っていました。私が試すことができる別のコマンドはありますか?
そうでない場合は、Python、Perl、またはPHP(お気に入り)を使用してファイルをダウンロードすることができます。出来ますか?
次のコマンドを使用できます。
curl -O http://www.domain.com/file.flv
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--enable-net-redirections
はかなり強力です。(Zshにも同様の機能があります。)ええと、ここにもHTTP基本認証を入れます。
もちろん、これはあまり優れたHTTP/1.1クライアントではありません。たとえば、チャンクエンコーディングはサポートされていません。しかし、それは実際にはかなりまれです。
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、PerlのLWPがインストールされている場合は、 GETという名前のサンプルバイナリが付属しているはずです…
lynx -source
curl -C - -O http://www.url.com
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 ()
sys.argv[1]
興味のあるURLはどこですか。
アクセスを認証したホストからファイルをダウンロードしようとしている場合は、を使用してみてくださいscp
。通常のコピーと似ていますが、sshトンネルを介して実行されます。「制限付きssh」を許可するホストは、多くの場合、まだ許可していることがわかりましたscp
。
scp user@myhost.com:folder/file.flv ./
ユーザーの資格情報を提供する必要があります。詳細については、scp
ドキュメントを参照してください。
同様のことを行う別のツールはsnarfです。
色々な方法、
別の可能な代替手段はaria2です。
scpを使用します。
使用法:scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i Identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user @] host1:] file1 ... [[user @] host2:] file2