cUrlコマンドの使い方
cUrlとはHTTPアクセスをしてコンテンツを取得できるコマンドのことです。Elasticsearchを使う上で必要となるので、まとめておきます。
環境はLinuxで行いました。
ページ取得
基本的な使い方としては、URLをパラメータにしてそのコンテンツを標準出力させます。$ curl yahoo.co.jp
上のように入力すると、YahooのサイトのHTMLが表示されます。
-o ファイル名
取得結果をファイルに保存します。以下のように入力すると、URLのファイルがu.dataというファイル名で保存されます。
$ curl -o u.data http://files.grouplens.org/datasets/movielens/ml-100k/u.data
-X
使用する要求のコマンドです。HTTPリクエストと一緒に使われます。
HTTPリクエストメソッド
一部、http://research.nii.ac.jp/~ichiro/syspro98/http.htmlを参考にしてまとめていきます。Webサイトを見る時、サーバに対して「サイトを見たい!」という要求を出します。この要求のことをリクエストと言います。
HTTPリクエストメソッドには以下の種類があります。
- GET : 情報をWebプラウザに返す。
- POST: サーバに情報を送る。
- PUT : サーバに情報を送り、サーバ上で保存。
- DELETE : サーバの情報を削除。
- HEAD : ヘッダ情報を要求する。
- CONNECT : プロキシサーバを通す。
- OPTION : 通信オプションを調べる。
- TRACE : 要求がどのプロキシサーバを経由して送信されるかを返す。
- LINK : 指定した URL とリソースにリンク関係を結ぶ。
- UNLINK : LINKを解除する。
これ以降、Elasticsearchで試してみました。
-XPUT
データを入れる場合に使用します。インデックス名「twitter」、タイプ名「tweet」で作成します。
$ curl -XPUT 'http://localhost:9200/twitter/tweet/1' -d '{ "user" : "kimchy", "post_date" : "2009-11-15T14:12:12", "message" : "trying out Elasticsearch" }'
すると、以下のように表示され、データを挿入できます。
{ "_index" : "twitter", "_type" : "tweet", "_id" : "1", "_version" : 1, "created" : true }
-XGET
データの情報を取得します。以下のように入力すると、userが"kimchy"であるデータの情報が返ってきます。
$ curl -XGET 'http://localhost:9200/twitter/_search?q=user:kimchy'
-XPOST
以下のように入力すると、"index.mapping.allow_type_wrapper"が"true"であると設定することが出来ます。$ curl -XPOST 'http://localhost:9200/twitter' -d '{ "settings": { "index": { "mapping.allow_type_wrapper": true } } }'
-XDELETE
データを削除することが出来ます。下のように入力すると、Elastic Searchで全てのデータ(index)を削除します。
とても怖いコマンドなので、気をつけましょう!
$ curl -XDELETE 'http://localhost:9200/*'
下のように入力すると、"twitter"という名前のindexが削除されます。
$ curl -XDELETE 'http://localhost:9200/twitter/'
以下のいずれかを入力すると、userが"kimchy"であるデータを削除することが出来ます。
$ curl -XDELETE 'http://localhost:9200/twitter/tweet/_query?q=user:kimchy' $ curl -XDELETE 'http://localhost:9200/twitter/tweet/_query' -d '{ "query" : { "term" : { "user" : "kimchy" } } } '
-d
フォームの送信と同様のことを行うためのオプションです。- dの後に、「 name=value 」という形でフォームの名前と値をイコールでむすびます。これは下のように複数個つけることが可能です。
curl -d u_ID=userid -d PassW=password http://www.n2sm_intern.com/login.cgi
-I
HTTPヘッダを取得するために使用するオプションです。以下のように入力すると、ヘッダ情報が出力されます。
curl -I http://www.n2sm.net/
出力
HTTP/1.1 200 OK Date: Mon, 25 May 2015 07:14:29 GMT Server: Apache/2.2.29 X-Powered-By: PHP/5.2.17 P3P: CP="NOI NID ADMa OUR IND UNI COM NAV" Cache-Control: private, must-revalidate Set-Cookie: 19vyu7gicuf40sc4o40gcsgks=a2a105bf41afc90c669ee6ada6367d27; path=/ Set-Cookie: 19vyu7gicuf40sc4o40gcsgks=a2a105bf41afc90c669ee6ada6367d27; path=/ Content-Type: text/html; charset=UTF-8
-u
認証が必要となるサイトでは、ユーザIDとパスワードが必要となります。例えば、以下のようにユーザIDとパスワードをコロンでつなげて入力します。
$ curl -u userid:password http://www.n2sm_intern.com/member/