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
한 가지 해결책은 먼저 실행하여 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 }}\"},"'
답변2
여기 문서와 함께 작동합니다.
sudo su - core << 'END_SUDO'
ssh self << 'END_SSH'
docker stats --no-stream --format '"{{ .Name }}{"memory":{"raw":"{{ .MemUsage }}","percent":"{{ .MemPerc }}"},"Node":"{{ "'"$(hostname -i)"'" }}","cpu":"{{ .CPUPerc }}"},'
END_SSH
END_SUDO