เรียกใช้สคริปต์จากระยะไกลบน Unix รับเอาต์พุตในเครื่องหรือไม่


44

ฉันต้องการเรียกใช้สคริปต์ (Tcl หรืออะไรก็ตาม) บนเครื่อง Unix ระยะไกลจากเชลล์คำสั่งของ Windows (ในเครื่อง) และฉันต้องการ stdout / stderr ของสคริปต์เพื่อแสดงใน Windows CLI รหัสทางออกก็มีประโยชน์เช่นกัน

เป็นไปได้นี้ใช้ ssh (putty)? หรือด้วยวิธีอื่นใด

ขอบคุณ!

คำตอบ:


43

นี่คือค่าเริ่มต้นสำหรับ SSH หากคุณต้องการเปลี่ยนเส้นทางเอาต์พุตจากระยะไกลให้ใส่สัญลักษณ์เปลี่ยนเส้นทาง (โดยทั่วไปคือ ">") ในเครื่องหมายคำสั่ง

ตัวอย่างเช่น:

ssh remote_host "ls > /tmp/file_on_remote_host.txt"

สำหรับการบันทึกผลลัพธ์ภายในเครื่องบนโฮสต์ Windows

ssh remote_host "ls" > .\file_on_local_host.txt

หากต้องการรวม stderr จากระยะไกลและบันทึกและ stdout ในเครื่อง

ssh remote_host "ls 2>&1" > .\combined_output_on_local_host.txt

เป็นไปได้ที่จะทำเช่นนี้กับ putty.exe? IE ทำงานเป็นโปรแกรม CLI "ปกติ" ซึ่งตรงข้ามกับค่าเริ่มต้นซึ่งจำลองเทอร์มินัล
Cristi Diaconescu

ฉัน putty'ed เป็นระบบ Windows 2003 และเรียกใช้บรรทัดคำสั่งใช่ โฮสต์มีเซิร์ฟเวอร์ SSH เวอร์ชัน HP ติดตั้งเพื่อสนับสนุนเครื่องมือการดูแลระบบ หากคุณมีไคลเอ็นต์ SSH มากกว่าทุกสิ่งที่ทำงานบนระบบระยะไกล
kmarsh

1
วิธีนี้ใช้ได้กับเครื่องที่ไม่ใช่ Windows
shiri

ยกเว้นเส้นทางแบ็กสแลชใช่
kmarsh

20

สิ่งที่ผมต้องการคือฉาบของด้านข้างเตะplink.exe แตกต่างจากผงสำหรับอุดรูซึ่งทำหน้าที่เหมือนเทอร์มินัลอีมูเลเตอร์plinkทำหน้าที่เหมือนโปรแกรม CLI ปกติ (ไม่โต้ตอบ)

เมื่อใช้มันฉันสามารถทำสิ่งนี้cmd.exeได้และรับเอาต์พุตคำสั่งรีโมตที่บันทึกไว้แบบโลคัล

\> plink remote_host "ls -l" > log.txt

ดีที่สุดของทั้งหมดนี้ใช้งานได้กับSSHเช่นเดียวกับTelnet !

เพื่อการอ้างอิงเท่านั้นตัวเลือกเหล่านี้คือ:

PuTTY Link: command-line connection utility
Release 0.59
Usage: plink [options] [user@]host [command]
       ("host" can also be a PuTTY saved session name)
Options:
  -V        print version information and exit
  -pgpfp    print PGP key fingerprints and exit
  -v        show verbose messages
  -load sessname  Load settings from saved session
  -ssh -telnet -rlogin -raw
            force use of a particular protocol
  -P port   connect to specified port
  -l user   connect with specified username
  -batch    disable all interactive prompts
The following options only apply to SSH connections:
  -pw passw login with specified password
  -D [listen-IP:]listen-port
            Dynamic SOCKS-based port forwarding
  -L [listen-IP:]listen-port:host:port
            Forward local port to remote address
  -R [listen-IP:]listen-port:host:port
            Forward remote port to local address
  -X -x     enable / disable X11 forwarding
  -A -a     enable / disable agent forwarding
  -t -T     enable / disable pty allocation
  -1 -2     force use of particular protocol version
  -4 -6     force use of IPv4 or IPv6
  -C        enable compression
  -i key    private key file for authentication
  -noagent  disable use of Pageant
  -agent    enable use of Pageant
  -m file   read remote command(s) from file
  -s        remote command is an SSH subsystem (SSH-2 only)
  -N        don't start a shell/command (SSH-2 only)
  -nc host:port
            open tunnel in place of session (SSH-2 only)

3

ใช่ถ้าคุณใช้ไคลเอนต์ putty ssh คุณจะเห็นเอาต์พุตบรรทัดคำสั่งใด ๆ ที่สคริปต์ของคุณจะสร้าง ในการรับรหัสออกหลังจากสคริปต์ทำงานให้พิมพ์:

echo $?

1

วิธีอื่นในการรับล็อกไฟล์บนเครื่อง windows ของคุณคือ: - ติดตั้ง Windows m / c บนระบบ Unix (ขึ้นอยู่กับรสชาติของ UNIX ซึ่งอาจเป็นไปได้ที่ใช้เซิร์ฟเวอร์ Samba) - เรียกใช้สคริปต์จาก windows โดยใช้ไคลเอนต์ระยะไกล - มี บันทึกสคริปต์ลงในไดเรกทอรีที่ติดตั้ง

คุณสามารถเห็นผลลัพธ์สดถ้าคุณได้รับเทียบเท่ายูนิกซ์หางสำหรับวินโดวส์


0

อีกหนึ่งคำตอบ:

บันทึกคำสั่ง linux ทั้งหมดของคุณในไฟล์cmdlist.txtและใช้คำสั่งด้านล่าง

plink.exe -ssh -pw passwd uname@1.2.3.4 output.txt

passwd == รหัสผ่านสำหรับการเข้าสู่ระบบของอุปกรณ์

uname == ชื่อผู้ใช้สำหรับการเข้าสู่ระบบของอุปกรณ์

1.2.3.4 == ที่อยู่ IP ของอุปกรณ์

หลังจากเรียกใช้งานคำสั่งนี้คำสั่ง cmdlist.txt ทั้งหมดของคุณจะถูกเรียกใช้งานบนอุปกรณ์ระยะไกลและเอาต์พุตจะถูกบันทึกในไฟล์ชื่อ output.txt

ตรวจสอบให้แน่ใจว่าเก็บ plink.exe และ cmdlist.txt ไว้ในไดเรกทอรีเดียวกันและคุณชี้พรอมต์ DOS ไปยังไดเรกทอรีเดียวกัน

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