SSH를 사용하여 원격 컴퓨터에서 스크립트를 실행하고 결과를 받으려고 합니다. 다음을 시도했습니다.
sh -c "ssh 192.168.2.202 /etc/my_script.sh arg1 arg2 > result.txt 2>/dev/null "
이 답변에서 제안한대로SSH를 통해 표준 출력 리디렉션그러나 STDERR을 리디렉션하지 않으면 다음과 같은 결과를 얻습니다.
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Inappropriate ioctl for device
더 좋은 방법이 있나요? 마지막으로 프로그램 내부에서 시스템 호출을 통해 ssh를 실행해야 하며 결과를 파일이나 변수로 받을 수 있어야 합니다. 참고: dropbear ssh가 로드된 씬 Linux ubunto가 있는 uProcessor에 연결하세요.
답변1
이것은 작동합니다:
ssh user@host "<cmd> > output.txt 2>/dev/null"
나는 당신이 겪고 있는 문제가 "sh -c"에 의해 해석된 매개변수로부터 SSH 쉘로 전송된 명령을 분리할 수 없다는 것이라고 생각합니다.