วิธีรันไฟล์คำสั่งใน PuTTY โดยใช้การล็อกอินอัตโนมัติใน command prompt?


20

ฉันใช้สิ่งต่อไปนี้เพื่อเข้าสู่ระบบโดยอัตโนมัติไปยังเซิร์ฟเวอร์ระยะไกลแล้วเรียกใช้คำสั่งที่ระบุไว้ใน a 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) ฉันใช้เวลา 2 ชั่วโมง googling วิธีการระบุคีย์ rsa ในบรรทัดคำสั่งสำหรับ PuTTY เพราะมันไม่ปลอดภัยต่อรหัสผ่านของรหัสยาก ฉันมองข้ามโซลูชัน Plink เพราะฉันคิดว่าการโทรต้องเริ่มต้นด้วยสีโป๊ว ตรวจสอบคำตอบด้านล่างที่กล่าวถึง Plink เช่น `Plink.exe -ssh host -l ผู้ใช้ -ic: \ Users \ myName \ .shsh \ myGeneratedPuttyKey.ppk
Soren Havelund Welling

คำตอบ:


11

คุณควรใช้plink.exe(อินเตอร์เฟสบรรทัดรับคำสั่งไปที่ PuTTY back end) และไม่ใช่putty.exe

คุณได้สิ่งนั้นจากหน้าดาวน์โหลด PuTTY

ไม่มี plink:

ดูเหมือนว่าวิธีเดียวคือใช้-log <logfile>ตัวเลือกแล้วพิมพ์เนื้อหาและลบออก


ฉันไม่สามารถใช้ plink หรืออินเตอร์เฟสบรรทัดคำสั่งอื่นได้ มีวิธีอื่นในการทำเช่นนี้หรือไม่

2
@supportpb "ฉันใช้ plink ไม่ได้" - เพราะอะไร จะเกิดอะไรขึ้นถ้าคุณลอง
gertvdijk

1
@gertvdijk สิ่งที่เกิดขึ้นคือการที่เขาได้รับเชื้อเพลิงสำหรับการใช้ซอฟแวร์ที่ไม่ได้รับการอนุมัติในเครื่องขององค์กร ...
Torben Gundtofte-Bruun

ตัวเลือกที่ไม่รองรับ:-log
Allan Bowe

10

ก่อนอื่นคุณจะต้องสร้างไฟล์แยกต่างหากที่มีคำสั่งทั้งหมดที่คุณต้องการใช้งาน

ตัวอย่าง: ฉันต้องการดาวน์โหลดและติดตั้งDrupalบนโดเมนของฉันโดยใช้ PuTTY ในการทำเช่นนั้นคุณต้อง:

ขั้นแรกให้สร้างไฟล์. txt ภายในไฟล์นั้นคือคำสั่ง ของฉันคือ: " drush dl drupal " บรรทัดถัดไป " drush si --account-name = [ชื่อบัญชี] --account-pass = [ผ่านบัญชี] --db-url = mysql: // [ผู้ใช้]: [ผ่าน ] @ localhost / [ชื่อฐานข้อมูล] --y "

หลังจากบันทึกไฟล์นั้นตอนนี้คุณจะสร้างไฟล์BATหรือพิมพ์ในพรอมต์ CMD:

  • ssh.cmd
  • @ echo บน [เพื่อให้คุณเห็นว่าเกิดอะไรขึ้น]
  • [นำทางไปยังการติดตั้ง PuTTY ของคุณ ของฉันคือ:] 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 Segal

2

จะไม่มีปัญหาหากคุณเพียงต้องการสร้างไฟล์แบตช์เพื่อเปิดเครื่อง Unix ด้านล่างเป็นตัวอย่าง:

"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.