Làm cách nào để chạy tệp lệnh trong PuTTY bằng cách đăng nhập tự động trong dấu nhắc lệnh?


19

Tôi đang sử dụng cách sau để đăng nhập tự động vào máy chủ từ xa và sau đó chạy các lệnh được liệt kê trong một commands.txt, như thế này:

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

commands.txt chứa những điều sau đây

ps -elf|grep 'sometext'

Tuy nhiên, khi tôi cố gắng làm như vậy, một cửa sổ mới cho PuTTY xuất hiện, nhưng nó sẽ đóng và thoát ngay lập tức sau khi đăng nhập. Kết quả là, tôi không thể thấy đầu ra của (các) lệnh.

Tôi không hiểu chuyện gì đang xảy ra ở đây. Tôi có sai trong cách tiếp cận của mình không hay tôi cần phải thực hiện thêm các bước để làm cho cửa sổ PuTTY tạm dừng một thời gian trước khi thoát?


2
Thay vào đó, hãy cân nhắc sử dụng Plink.exe (thường đi kèm với Putty, hãy nhớ đưa vào PATH). Tôi đã dành 2 giờ để tìm cách xác định khóa rsa trong một dòng lệnh cho PuTTY vì nó không an toàn đối với mật khẩu mã cứng. Tôi bỏ qua giải pháp Plink bởi vì, tôi nghĩ rằng cuộc gọi phải bắt đầu bằng putty. Kiểm tra câu trả lời dưới đây đề cập đến Plink. ví dụ: `Plink.exe -ssh host -l user -ic: \ Users \ myName \ .ssh \ myGeneratedPuttyKey.ppk
Soren Havelund Welling

Câu trả lời:


11

Bạn nên sử dụng plink.exe(giao diện dòng lệnh cho mặt sau của PuTTY) chứ không phảiputty.exe

Bạn nhận được điều đó từ trang tải xuống PuTTY

Không có nếp nhăn:

Có vẻ như cách duy nhất là sử dụng các -log <logfile>tùy chọn và sau đó in nội dung của nó và xóa nó.


Tôi không thể sử dụng plink hoặc các giao diện dòng lệnh khác. Có cách nào khác để làm điều này không

2
@supportpb "Tôi không thể sử dụng plink" - tại sao? Điều gì xảy ra nếu bạn cố gắng?
gertvdijk

1
@gertvdijk chuyện gì xảy ra khi anh ta bị sa thải vì sử dụng phần mềm không được phê duyệt trên các máy của công ty ...
Torben Gundtofte-Bruun

tùy chọn không được hỗ trợ:-log
Allan Bowe

9

Trước tiên, bạn cần tạo một tệp riêng biệt chứa tất cả các lệnh bạn muốn được thực thi.

Ví dụ: Tôi muốn tải xuống và cài đặt Drupal trên miền của mình bằng PuTTY. Để làm điều đó bạn phải:

Đầu tiên tạo một tập tin .txt. Trong tập tin đó là các lệnh. Của tôi là: " drush dl drupal " dòng tiếp theo, " drush si --account-name = [tên tài khoản] --account-pass = [tài khoản pass] --db-url = mysql: // [user]: [pass ] @ localhost / [tên cơ sở dữ liệu] --y "

Sau khi lưu tệp đó, bây giờ bạn sẽ tạo tệp BAT hoặc nhập tệp đó vào dấu nhắc của CMD:

  • ssh.cmd
  • @echo trên [để bạn xem điều gì đang xảy ra]
  • [Điều hướng đến cài đặt PuTTY của bạn. Của tôi là:] cd C: \ Chương trình tập tin \ Putty
  • Khởi đầu 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]

Tùy chọn -m không hoạt động đối với tôi. đó là một lỗi cho biết không thể mở tệp lệnh <đường dẫn đến tệp văn bản của tôi>
user590849

@ user590849 đường dẫn đến tệp văn bản lệnh của bạn có khoảng trắng nào không? Bởi vì tôi chỉ
Ếch đen

2

Cách tiếp cận của bạn có vẻ tốt, tuy nhiên, có một cài đặt mặc định trong hành vi gây rắc rối cho bạn ở đây và có thể khiến bạn tin rằng không có gì xảy ra.

Tuy nhiên, khi tôi cố gắng làm như vậy, một cửa sổ mới cho PuTTY xuất hiện, nhưng đóng lại và thoát ngay lập tức sau khi đăng nhập

Phiên của bạn kết thúc ngay sau khi lệnh được thực thi và PuTTY đóng cửa sổ theo mặc định. Xem tài liệu của PuTTY về cách thay đổi hành vi này cho phiên của bạn.

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.

Thật thú vị, nhưng điều đó cũng sẽ ảnh hưởng đến các phiên thủ công ...
Aviram Segal

1
@AviramSegal Đó là cài đặt phiên. Chỉ cần nhân đôi cấu hình phiên, nói session-noclosevà sử dụng cấu hình đó trong kịch bản.
gertvdijk

1
oh cài đặt phiên, sau đó có sẽ hoạt động
Aviram Segal

1

Sẽ không có vấn đề gì nếu bạn chỉ muốn tạo tệp bó để mở máy Unix. Dưới đây là ví dụ:

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

Đường dẫn PuTTY phải ở trong dấu ngoặc kép, như "C: \ Program Files \ putty \ putty.ext"

machinename = machinename không có dấu ngoặc kép

mật khẩu = với dấu ngoặc kép


0

Ngoài câu trả lời của Aviram:

Dưới đây là ví dụ về cách bạn sẽ chạy các lệnh PuTTY từ dấu nhắc lệnh:

  • Trước tiên, hãy vào thư mục cài đặt PuTTY C:\Program Files\PuTTY, sau đó thực hiện lệnh dưới đây:

    plink.exe -ssh server_ip -P port_no -l user_name -pw mật khẩu

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.