การรันคำสั่งแบตช์ผ่านการเชื่อมต่อแบบอนุกรม PuTTY


3

ฉันมีลำดับของคำสั่งที่ฉันใช้เพื่ออัปเดตเฟิร์มแวร์ในเครื่อง Linux ของฉัน เมื่อฉันเชื่อมต่อกับเครื่องโดยใช้การเชื่อมต่อแบบอนุกรมฉันสามารถพิมพ์คำสั่งแบบหนึ่งต่อหนึ่งและทำงานได้ดี ฉันต้องการทำให้กระบวนการนี้เป็นแบบอัตโนมัติโดยการเรียกใช้คำสั่งในแบตช์ไฟล์

ฉันมีโปรไฟล์สำหรับการเชื่อมต่อแบบอนุกรมของฉันบันทึกเป็น 'i5IS-COM4' ดังนั้นฉันจึงเรียกใช้ไฟล์ชุดแรกของฉัน 'send.bat' ซึ่งอ่าน:

commands.bat |  putty -load i5IS-COM4

และ command.bat อ่าน:

echo "this command works!"

เมื่อฉันเรียกใช้ 'send.bat' จะเปิดเทอร์มินัลอย่างถูกต้องและเชื่อมต่อกับเครื่อง Linux ของฉัน แต่คำสั่ง echo ไม่ทำงาน หากใครสามารถช่วยให้ฉันได้ไฟล์แบทช์ของฉันไปทำงานมันจะได้รับการชื่นชมอย่างมาก!

ฉันดูโพสต์ต่อไปนี้และอื่น ๆ อีกมากมาย แต่ฉันยังไม่พบวิธีแก้ปัญหาของฉัน

รันหลายคำสั่งจากไฟล์หลังจากล็อกอินเข้าสู่ PuTTY จากไฟล์ bat

แก้ไข:

เมื่อฉันใช้การเปลี่ยนเส้นทางคำสั่งโดยใช้ plink แทน putty ฉันเพิ่งได้รับเทอร์มินัลที่ว่างเปล่า รันคำสั่งต่อไปนี้: start plink.exe -load i5IS-COM4 < commands.txt with actions.txt ดังนี้: echo "this command works!"; /bin/bash ส่งคืนเทอร์มินัลต่อไปนี้: ป้อนคำอธิบายรูปภาพที่นี่

คำตอบ:


2

PuTTY เป็นแอปพลิเคชัน GUI ไม่ใช่แอปพลิเคชันคอนโซล คุณไม่สามารถใช้การเปลี่ยนเส้นทางอินพุต / เอาต์พุตด้วยแอปพลิเคชัน GUI

ไม่มีวิธีการเรียกใช้งานคำสั่งบนเซิร์ฟเวอร์โดยอัตโนมัติด้วย PuTTY ผ่านการเชื่อมต่อแบบอนุกรม


แม้ว่าคุณควรจะสามารถที่จะใช้Plink (ฉาบเครื่องมือบรรทัดคำสั่งการเชื่อมต่อ)

Plink เทียบเท่ากับ PuTTY ยกเว้นว่าเป็นแอปพลิเคชันคอนโซลดังนั้นคุณสามารถใช้การเปลี่ยนเส้นทางอินพุต / เอาท์พุตด้วย:

commands.bat | plink -load i5IS-COM4

แม้ว่าไฟล์ "bat" ของคุณจะไม่ใช่แบตช์ไฟล์ (ที่จะสร้างคำสั่งสำหรับอุปกรณ์) แต่ไฟล์ข้อความที่มีคำสั่งสำหรับอุปกรณ์โดยตรงคุณต้องการใช้เนื้อหาของไฟล์เป็นอินพุต มากกว่าการส่งออกของการดำเนินการ:

plink -load i5IS-COM4 < commands.bat

ขอบคุณสำหรับคำตอบของคุณ Martin ฉันได้ใช้ plink แทน PuTTY และฉันสามารถเปิดเทอร์มินัลได้ แต่ไม่มีไวยากรณ์ที่คุณโพสต์ไว้หรือ 'start plink.exe -load i5IS-COM4 <command.bat' ได้รันคำสั่งของฉันเรียบร้อยแล้ว
foxymop

แล้วมันทำอะไร? แสดงให้เรา
Martin Prikryl

ฉันเปิดเทอร์มินัลและล็อกอินเข้าสู่เซิร์ฟเวอร์ linux ของฉันจากนั้นฉันเรียกใช้ไฟล์แบตช์ที่มีบรรทัดต่อไปนี้: start plink.exe -load i5IS-COM4 < commands.txtบัญชา txt มีบรรทัดต่อไปนี้: echo "this command works!"; /bin/bashเมื่อฉันเรียกใช้ไฟล์แบตช์ฉันเพิ่งได้รับเทอร์มินัล plink เปล่า พรอมต์จากผู้ใช้รูท
foxymop

ทำไมstart? ที่ไม่สมเหตุสมผล ย้ายมัน.
Martin Prikryl

ขอบคุณมาร์ติน! ฉันต้องลบ 'เริ่มต้น' ออกจากไฟล์ของฉันและเปลี่ยนจุดสิ้นสุดบรรทัดเป็น Unix ในโปรแกรมแก้ไขข้อความของฉันตอนนี้ฉันสามารถรันลำดับของคำสั่งผ่าน plink ได้!
foxymop
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.