Làm thế nào để tôi dẫn đầu ra của thời gian hoạt động / df để cuộn tròn?


10

Tôi muốn gửi đầu ra uptimedfcác lệnh đến một ứng dụng web bằng cURL. Tôi đã thử:

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

Nhưng điều đó dường như không gửi dữ liệu.

Cách thích hợp để gửi đầu ra của lệnh tới cURL dưới dạng tham số POST là gì? (hoặc wget nếu điều đó dễ dàng hơn nhiều)


bạn đã cố gắng sử dụng bộ chuyển hướng cho thiết bị xuất chuẩn >không phải là một đường ống |? Cũng hãy xem xargs.
mbrownnyc

Nhìn này được mô tả trong hướng dẫn sử dụng curl: curl.haxx.se/docs/manpage.html#-d Hoặc trong hướng dẫn của wget (dưới --post-data=string): gnu.org/software/wget/manual/wget.html#HTTP- Tùy chọn
mailq

Khi bạn nói "dưới dạng tham số POST", bạn có nghĩa là bạn cần nó như thể bạn đã nhập thời gian hoạt động của mình vào một trường (có tên) trên một biểu mẫu và nhấn gửi, hoặc như thể bạn đã lưu thời gian hoạt động của mình vào một tệp , sau đó sử dụng một trường tải lên tệp để chọn tệp, sau đó nhấn gửi? Đây là hai cách khác nhau để gửi dữ liệu. -Tvới việc http[s]://sử dụng PUT, không POST.
DerfK

@DerfK Vâng, tôi muốn nó như thể tôi đã dán các kết quả thời gian hoạt động vào một trường văn bản và nó đã được gửi đến một URL.
Gọi

Câu trả lời:


29

Bạn có thể sử dụng tùy chọn -d trong curl với đối số @ - để chấp nhận đầu vào từ một đường ống. Bạn sẽ cần phải tự xây dựng các cặp khóa-giá trị. Thử cái này xem sao:

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

Backticks (`) biểu thị rằng lệnh kèm theo (trong trường hợp này là thời gian hoạt động) nên được thực thi và văn bản trích dẫn backtick được thay thế bằng đầu ra của lệnh được thực thi.


4
Nếu đầu ra của lệnh bao gồm ngắt dòng (như df) bạn có thể muốn sử dụng curl --data-binary @- URLhoặc trong các phiên bản mới hơn của curl:uptime | curl --data-urlencode time@- URL
xebeche
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.