簡體   English   中英

如何 SSH 一個 curl 命令

[英]How to SSH a curl command

env = GNU bash,版本 4.2.46(2)-release (x86_64-redhat-linux-gnu)

情況:
SystemA=沒有互聯網。 SystemB=是的互聯網。
SystemA 有一個日志文件。 SystemA 希望 SystemB 為他發送 curl 命令。

系統A$
ssh SystemB curl -X POST -H "Content-type: application/json" -d "$data" $hook = 失敗

系統B$
curl -X POST -H "Content-type: application/json" -d "$data" $hook = 成功

在沒有 SystemA 將日志文件“scp”到 SystemB 的情況下,如何實現這一點?
它與日程安排密切相關,所以我希望 SystemA 讓 SystemB 工作。


編輯:我縮小了問題范圍:

在系統 B 上:

curl -X POST -H "Content-type: application/json" -d '{$data}' $hookurl = 成功
curl -X POST -H "Content-type: application/json" -d {$data} $hookurl = 失敗

所以當我輸入 SystemA
ssh SystemB curl -X POST -H "Content-type: application/json" -d "{$data}" $hookurl
它實際上在 SystemB 上使用-d {$data}運行。 我怎樣才能解決這個問題?


更新:
ssh SystemB curl -X POST -H "Content-type: application/json" -d "'{$data}'" $hookurl

確實有效並實際將數據發送到 url,但curl: (6) Could not resolve host: application; Unknown error 再次發生curl: (6) Could not resolve host: application; Unknown error

也許使用 sshfs

在系統 B 上

sshfs -p'ssh port' -o password_stdin user@systemA:/home/user/dir /home/user/dir <<< 'passwd'

你可以使用這個命令:

ssh SystemB /bin/bash <<< "$(declare -p data hook);"'curl -X POST -H "Content-type: application/json" -d "$data" "$hook"'

"$(declare -p data hook);" 從 SystemA 獲取變量定義並將它們傳遞給 SystemB

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM