sudoユーザーに切り替えてから、SSHを使用してリモートサーバーでコマンドを実行する必要があります。
実際のコマンド
docker stats --no-stream --format "\"{{ .Name }}\^C{\"memory\":{\"raw\":\"{{ .MemUsage }}\",\"percent\":\"{{ .MemPerc }}\"},\"Node\":\"{{ \"`hostname -i`\" }}\",\"cpu\":\"{{ .CPUPerc }}\"},"
SSHでも実行できます。
ssh 1.2.3.4 'docker stats --no-stream --format "\"{{ .Name }}\^C{\"memory\":{\"raw\":\"{{ .MemUsage }}\",\"percent\":\"{{ .MemPerc }}\"},\"Node\":\"{{ \"`hostname -i`\" }}\",\"cpu\":\"{{ .CPUPerc }}\"},"'
しかし、sudo su - core -cに渡そうとすると、「パターン一致」のため動作しません。このコマンドを正しくラップするにはどうすればよいですか?
sudo su - core -c 'ssh 1.2.3.4 'docker stats --no-stream --format "\"{{ .Name }}\^C{\"memory\":{\"raw\":\"{{ .MemUsage }}\",\"percent\":\"{{ .MemPerc }}\"},\"Node\":\"{{ \"`hostname -i`\" }}\",\"cpu\":\"{{ .CPUPerc }}\"},"''
ベストアンサー1
1つの解決策は、最初に実行してsudo su - core
ユーザーを変更してからコマンドを実行することです。その後、exit
元のユーザーに戻るために書くだけです。しかし、あなたは気の利いた言葉が欲しいと思います。この場合、これはうまくいくと思いますが、残念ながらテストすることはできません。
sudo su - core -c ssh\ 1.2.3.4\ 'docker stats --no-stream --format "\"{{ .Name }}\^C{\"memory\":{\"raw\":\"{{ .MemUsage }}\",\"percent\":\"{{ .MemPerc }}\"},\"Node\":\"{{ \"`hostname -i`\" }}\",\"cpu\":\"{{ .CPUPerc }}\"},"'