[英]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.