명령은 bash에서는 수동으로 작동하지만 스크립트에서는 작동하지 않습니다.

명령은 bash에서는 수동으로 작동하지만 스크립트에서는 작동하지 않습니다.

Windows 10에서 Powershell 버전 5.1.18362.1171을 사용하고 있습니다.

다음 명령을 실행하면:

ssh -i id_rsa [email protected] 'exec bash -l';

그런 다음 열린 bash 콘솔에서 이 명령을 수동으로 실행하십시오.

/usr/bin/o3d3xx-reboot

스크립트는 오류 없이 올바르게 작동하며 결국 재부팅됩니다. 그러나 아래 코드를 사용하여 이 코드를 자동으로 실행하려고 하면 재부팅 스크립트 내의 일부 오류로 인해 항상 실패합니다.

ssh -i id_rsa [email protected] '/usr/bin/o3d3xx-reboot';

첫 번째 버전에서 작동하는 것과 같은 방식으로 수동 입력 없이 이 스크립트/바이너리를 실행할 수 있는 방법이 있습니까?

답변1

재부팅되지 않은 이유를 설명하는 로그 파일을 제공하지 않으면 문제가 무엇인지 추측하기 어렵습니다.

다음과 같이 SSH에서 bash를 호출하고 명령을 실행한 후 즉시 SSH 연결을 종료하여 문제를 해결할 수 있습니다.

ssh you@yourserver "bash --rcfile <(echo '. ~/.bashrc; /usr/bin/o3d3xx-reboot; exit') -l"

bash를 호출 한다는 사실은 -l실행 o3d3xx-reboot파일에 /etc/profile. 덜 해킹된 솔루션을 만들기 위해 거기를 보고 싶을 수도 있습니다.

답변2

ssh -i id_rsa myuser@myip "bash --login -c 'cd /usr/bin/ && o3d3xx-reboot && exit'";

환경 변수가 누락되어 스크립트가 작동하지 않은 것 같습니다. 저는 로그인하여 수동으로 명령을 입력하는 것과 동일한 방식으로 환경을 로드하는 위의 스크립트를 사용했습니다.

관련 정보