Putty 수동 세션과 Plink 세션이 다르게 동작합니다.

Putty 수동 세션과 Plink 세션이 다르게 동작합니다.

안녕하세요. Win PC에서 퍼티를 사용하여 원격 Linux 서버에 연결하고 거기에서 특정 명령을 실행하고 있습니다. 다음과 같이 plink를 사용하여 작업을 자동화하고 싶습니다.

plink serveradress -l userid -pwd pass -batch "ls;cmd1"

putty/plink를 통해 수동으로 "ls;cmd1;cmd2" 명령을 수행하면 제대로 작동합니다. 그러나 cmd.ext 및 plink 명령 위에서 동일한 작업을 수행하면 "bash cmd1을 찾을 수 없습니다"라는 메시지가 표시됩니다. 그러나 ls 명령은 제대로 작동합니다.

왜 이런 일이 발생합니까? PS: cmd1은 내장된 Linux 명령이 아닙니다. 내가 생각하는 서버를 위해 특별히 제작되었습니다.

이 작업을 어떻게 수행합니까?

답변1

cmd1bash가 '명령을 찾을 수 없음'에 대해 불평하는 경우 이는 해당 명령을 $PATH. 따라서 에 대한 경로가 cmd1항상 에 있는지 확인 $PATH하거나 에 대한 전체 경로 이름을 지정해야 합니다 cmd1.

plink serveradress -l userid -pwd pass -batch "ls;/where/you/can/find/cmd1"

which cmd1대화형 셸(퍼티를 통한 경로)에서 전체 경로 이름을 찾을 수 있습니다 .

~/.bashrc또는 ~/.profile홈 디렉터리의 .bashrc 또는 .profile 에서 PATH를 설정할 수 있습니다 .

echo $PATH퍼티 세션에서 또는 plink serveradress -l userid -pwd pass -batch 'echo $PATH'(작은따옴표 참고)을 사용 하여 PATH를 확인할 수 있습니다 . 두 가지를 모두 수행하면 차이가 나타납니다.

관련 정보