명령 프롬프트에서 자동 로그인을 사용하여 PuTTY에서 명령 파일을 실행하는 방법은 무엇입니까?


19

다음을 사용하여 원격 서버에 자동으로 로그인 한 후 다음 commands.txt과 같이에 나열된 명령을 실행합니다 .

C:\path\to\putty.exe -load "[Sessionname]" -l [user] -pw [password] -m C:\path\to\commands.txt

commands.txt 다음을 포함합니다 :

ps -elf|grep 'sometext'

그러나 그렇게하려고하면 PuTTY에 대한 새 창이 나타나지만 로그인 직후 닫히고 종료됩니다. 결과적으로 명령의 출력을 볼 수 없습니다.

나는 여기서 무슨 일이 일어나고 있는지 이해하지 못한다. 내가 잘못 접근했거나 종료하기 전에 PuTTY 창이 일시 중지되도록 추가 단계를 수행해야합니까?


2
대신 Plink.exe 를 사용하는 것이 좋습니다 (일반적으로 Putty와 번들로 제공 되므로 PATH에 포함해야 함). 하드 코드 암호에는 안전하지 않기 때문에 PuTTY의 명령 줄에 rsa 키를 지정하는 방법을 인터넷 검색하는 데 2 ​​시간을 보냈습니다. 나는 전화가 퍼티로 시작해야한다고 생각했기 때문에 Plink 솔루션을 간과했습니다. Plink에 대해 아래 답변을 확인하십시오. 예 :`Plink.exe -ssh 호스트 -l user -ic : \ Users \ myName \ .ssh \ myGeneratedPuttyKey.ppk
Soren Havelund Welling

답변:


11

plink.exePuTTY 백엔드에 대한 명령 행 인터페이스를 사용해야합니다.putty.exe

PuTTY 다운로드 페이지 에서 얻을 수 있습니다.

plink없이 :

-log <logfile>옵션 을 사용한 다음 내용을 인쇄하고 삭제하는 것이 유일한 방법 인 것 같습니다 .


plink 또는 다른 명령 줄 인터페이스를 사용할 수 없습니다. 다른 방법이

2
@supportpb "plink를 사용할 수 없습니다"-왜? 시도하면 어떻게됩니까?
gertvdijk

1
@gertvdijk는 기업 컴퓨터에서 승인되지 않은 소프트웨어를 사용하여 해고당하는 경우입니다.
Torben Gundtofte-Bruun

지원되지 않는 옵션 :-log
Allan Bowe

9

먼저 실행하려는 모든 명령을 포함하는 별도의 파일을 만들어야합니다.

예 : PuTTY를 사용하여 도메인에 Drupal 을 다운로드하여 설치 하고 싶습니다. 그렇게하려면 다음을 수행해야합니다.

먼저 .txt 파일을 작성하십시오. 해당 파일 내에 명령이 있습니다. 내 이름은 : " drush dl drupal "다음 줄, " drush si --account-name = [계정 이름] --account-pass = [계정 패스] --db-url = mysql : // [user] : [pass ] @ localhost / [데이터베이스 이름] --y "

해당 파일을 저장 한 후 BAT 파일 을 작성 하거나 CMD 프롬프트에 입력하십시오.

  • ssh.cmd
  • @echo on [현재 진행중인 작업을 볼 수 있도록]
  • [PuTY 설치로 이동하십시오. 내 것은 :] cd C : \ Program Files \ Putty
  • 스타트 putty.exe -ssh [domain name] -l [username] -pw [password] -m [the directory of the .txt file you created which contains the codes you want to be executed]

-m 옵션이 작동하지 않습니다. 명령 파일 <텍스트 파일 경로>를 열 수 없다는 오류가 표시됩니다.
user590849

@ user590849 명령 텍스트 파일의 경로에 공백이 있습니까? 난 그냥
Black Frog

2

당신의 접근 방식은 좋아 보이지만 여기에는 문제를 일으키는 기본 설정이 하나 있으며, 아무 일도 일어나지 않는다고 생각할 수도 있습니다.

그러나 그렇게하려고하면 PuTTY에 대한 새 창이 나타나지만 로그인 후 즉시 닫히고 종료됩니다

명령이 실행 된 직후 세션이 종료되고 PuTTY는 기본적으로 창을 닫습니다. 세션에서이 동작을 변경하는 방법에 대한 PuTTY 설명서를 참조하십시오 .

4.1.3 `Close Window on Exit'

   Finally in the Session panel, there is an option labelled `Close
   Window on Exit'. This controls whether the PuTTY terminal window
   disappears as soon as the session inside it terminates.

... 재미있는, 그러나 그것은뿐만 아니라 수동 세션에 영향을 미칠 것입니다
Aviram 시걸

1
@AviramSegal 세션 설정입니다. 세션 구성을 복제하고 session-noclose스크립팅에서 사용하십시오.
gertvdijk

1
오 세션 설정은 다음 네 그것은 작동합니다
Aviram 시걸

1

유닉스 머신을 열기 위해 배치 파일을 생성하려는 경우 아무런 문제가 없습니다. 아래는 예입니다.

"PuTTY path" -ssh machinename -l username -pw password

PuTTY 경로는 "C : \ Program Files \ putty \ putty.ext"와 같이 큰 따옴표로 묶어야합니다.

machinename = 큰 따옴표가없는 machinename

비밀번호 = 따옴표 포함


0

Aviram의 답변 외에도

다음은 명령 프롬프트에서 PuTTY 명령을 실행하는 방법의 예입니다.

  • 먼저 PuTTY 설치 디렉토리로 이동 C:\Program Files\PuTTY한 다음 아래 명령을 실행하십시오.

    plink.exe -ssh server_ip -P port_no -l user_name -pw 비밀번호

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.