วิธีการรันเชลล์สคริปต์โลคัลบนรีโมตเซิร์ฟเวอร์ผ่าน SSH?


คำตอบ:


16
ssh user@remotehost "bash -s" < local_script.sh

-s ทำให้ bash อ่านจากอินพุตมาตรฐาน

หากคุณต้องการส่งอาร์กิวเมนต์ไปยังสคริปต์ของคุณ:

ssh user@remotehost "bash -s" -- < local_script.sh "your_arg" "--aswitch" "avalue"

บันทึกเครื่องหมายขีดกลางสองอัน--(หมายถึงการสิ้นสุดของตัวเลือกคำสั่ง) และเครื่องหมายคำพูดรอบ ๆ อาร์กิวเมนต์


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

3
คุณไม่ต้องการ-sและคุณต้องการbashถ้าคุณต้องการบังคับใช้bashจริงๆเท่านั้น โดยปกติแล้วคุณสามารถทำได้ssh user@remotehost < local_script.sh
janos

1
จะเกิดอะไรขึ้นถ้าสคริปต์ในเครื่องมีตัวถูกดำเนินการ
kmassada

ฉันมีสคริปต์ที่ต้องการข้อโต้แย้งเช่น "sh setup.sh arg1 arg2 arg3" วิธีดำเนินการ
Amarjit Singh

4

คำตอบ phoibos คือการทำงานสำหรับฉัน

ssh user@remotehost "bash -s" < local_script.sh

แต่คุณต้องแน่ใจว่าสคริปต์ของคุณโทรออกอย่างชัดเจนหรือคุณจะยังคงเข้าสู่ระบบเซิร์ฟเวอร์ระยะไกลหลังจากการดำเนินการสคริปต์

สั้นอย่าลืมใส่ท้ายนี้local_script.sh:

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