お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2010-07-22 20:17:01

kappamia
メンバ
登録日: 2008-05-14

mercurialで生成したページを再帰的にwgetできない

mercurialには単体で簡易なwebサーバとして作動し、
リポジトリ内の内容を見る機能があります。
hg serveをすると http://localhost:8000/にリポジトリの内容が表示されます。
http://mercurial.selenic.com/wiki/hgserve

この表示された内容をwget -r で全部取得しようとしたのですが、
なぜか最初のindex.htmlだけしか取得できません。

コード:

% sudo hg serve -p 80
% wget -rLl 10 http://localhost/

の結果は以下のように表示されました。

コード:

--2010-07-22 20:14:18--  http://localhost/
localhost をDNSに問いあわせています... ::1, 127.0.0.1
localhost|::1|:80 に接続しています... 失敗しました: Connection refused.
localhost|127.0.0.1|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 Script output follows
長さ: 特定できません [text/html]
`localhost/index.html' に保存中

    [ <=>                                   ] 2,094       --.-K/s   時間 0.001s

2010-07-22 20:14:18 (2.07 MB/s) - `localhost/index.html' へ保存終了 [2094]

終了しました --2010-07-22 20:14:18--
ダウンロード完了: 1 ファイル、2.0K バイトを 0.001s で取得 (2.07 MB/s)

わかる方がいましたら、教えて下さい。
宜しくお願いします。

オフライン

 

#2 2010-07-23 10:37:20

kappamia
メンバ
登録日: 2008-05-14

Re: mercurialで生成したページを再帰的にwgetできない

補足情報です。

いろいろ試行錯誤して見てわかった事は
mercurialで生成されたページには拡張子がない事が問題のように思います。

例)
http://localhost:8000/branches
http://localhost:8000/graph/144120a80cae

拡張子関連のオプションには -A -R がありますが、
拡張子のないファイルってwgetで取得する方法はありますかね?

オフライン

 

#3 2010-07-23 12:51:32

hito
管理者
登録日: 2007-03-18

Re: mercurialで生成したページを再帰的にwgetできない

wgetの-Aオプションは拡張子だけではなくファイル名全体に効くので、-A "**"とかすると望みの挙動にならないでしょうか?

ただ、そもそもhgの組み込み.cgi処理を使っている環境で、wget -rしたい理由がいまひとつよくわかっていません(普通にリポジトリ操作で引っ張ってくるのでいけない理由がある?)。そのあたり、実はなにか他の背景があって、wgetで、というのは解法のひとつでしかない、ということはないでしょうか。

オフライン

 

#4 2010-07-23 19:35:12

STGSAGWAN
ゲスト

Re: mercurialで生成したページを再帰的にwgetできない

kappamia による投稿:

この表示された内容をwget -r で全部取得しようとしたのですが、
なぜか最初のindex.htmlだけしか取得できません。

コード:

% sudo hg serve -p 80
% wget -rLl 10 http://localhost/

wgetの-Lオプションが効いてしまってるからです。

 

#5 2010-07-25 12:42:45

kappamia
メンバ
登録日: 2008-05-14

Re: mercurialで生成したページを再帰的にwgetできない

hito による投稿:

wgetの-Aオプションは拡張子だけではなくファイル名全体に効くので、-A "**"とかすると望みの挙動にならないでしょうか?

ただ、そもそもhgの組み込み.cgi処理を使っている環境で、wget -rしたい理由がいまひとつよくわかっていません(普通にリポジトリ操作で引っ張ってくるのでいけない理由がある?)。そのあたり、実はなにか他の背景があって、wgetで、というのは解法のひとつでしかない、ということはないでしょうか。

-A "*" で(部分的に)うまく行きました。

一つわかった事はubuntuのバージョン1.12のwgetではうまくいかず、
バージョン1.9のwgetを本家からインストールしたらうまく行きました。

実行のコマンドは:
wget -r -k -A "*" -R .txt,png,css,js -l 2 http://localhost:8000/

謎な動きとしては
-Rオプションを付けないと拡張子が.txtとかの時にダウンロードが途中で停止します。
-Rオプションを付けると停止しないのですが、なぜか.txtのファイルがダウンロードされていたりします(汗

-l 2 としているのもこれ以上の深さだとhg serveからファイルその物をダウンロードしようとして、
途中でとまってしまうためです、-Rでリポジトリ中のファイル名を全部指定しないとダメでした。

とりあえず、やりたい事はできたのですが、
以上の現象についてなにかわかる方がおりましたら情報いただければうれしいです。

オフライン

 

Board footer

Powered by FluxBB