명령 프롬프트에서 자동 로그인을 사용하여 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.