uptime / dfの出力をcurlにパイプするにはどうすればよいですか?


10

の出力uptimedfコマンドをcURLを使用してWebアプリに送信したい。私は試した:

uptime | curl http://someurl.com -T -

しかし、それはデータを送信していないようです。

コマンドの出力をcURLにPOSTパラメータとして送信する適切な方法は何ですか?(またはそれがはるかに簡単な場合はwget)


>パイプではなく標準出力にリダイレクタを使用しようとしました|か?もご覧くださいxargs
mbrownnyc 2011

これはcurlのマニュアルで説明されているように見えます:curl.haxx.se/docs/manpage.html#-dまたはwgetのマニュアル(下--post-data=string):gnu.org/software/wget/manual/wget.html#HTTP-オプション
mailq

「POSTパラメータとして」と言うときは、フォームのフィールド(名前付き)に稼働時間を入力して送信ボタンを押すのと同じようにする必要があるか、または稼働時間をファイルに保存するのと同じですか、次にファイルアップロードフィールドを使用してファイルを選択し、送信を押しましたか?これらは、データをPOSTする2つの異なる方法です。 POSTではなくPUT -Thttp[s]://使用します。
DerfK 2011

@DerfKはい、アップタイムの結果をtextareaフィールドに貼り付け、URLにPOSTしたかのようにしたいと思います。
Callmeed 2011

回答:


29

curlで-dオプションを@-引数とともに使用して、パイプからの入力を受け入れることができます。自分でキーと値のペアを作成する必要があります。これを試して:

echo "time=`uptime`" | curl -d @- http://URL

バッククォート( `)は、囲まれたコマンド(この場合は稼働時間)が実行され、バッククォートで引用されたテキストが実行されたコマンドの出力に置き換えられることを示します。


4
コマンドの出力は、(のような改行が含まれている場合dfは、使用したい場合があります)curl --data-binary @- URL:またはカールの新しいバージョンでuptime | curl --data-urlencode time@- URL
xebeche
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.