Làm cách nào để chạy tập lệnh shell cục bộ trên máy chủ từ xa thông qua SSH?


Câu trả lời:


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

-s làm cho bash đọc từ đầu vào tiêu chuẩn.

Nếu bạn cần truyền đối số cho tập lệnh của mình:

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

Lưu ý dấu gạch ngang kép --(biểu thị sự kết thúc của các tùy chọn lệnh) và dấu ngoặc kép xung quanh các đối số.


Tôi sẽ phải nhớ điều đó. Vui lòng cho chúng tôi biết nếu điều đó có hiệu quả với bạn và đừng quên đánh dấu câu trả lời là được chấp nhận nếu có.
Luận điểm

3
Bạn không cần -s, và bạn chỉ cần bashnếu bạn thực sự muốn sử dụng bash. Thông thường bạn có thể chỉ đơn giảnssh user@remotehost < local_script.sh
janos

1
Nếu kịch bản cục bộ có toán hạng thì sao?
kmassada

Tôi có một tập lệnh cần đối số, ví dụ: "sh setup.sh arg1 arg2 arg3" cách thực thi nó
Amarjit Singh

4

câu trả lời phoibos là làm việc cho tôi.

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

Nhưng bạn phải chắc chắn rằng tập lệnh của bạn gọi thoát một cách rõ ràng hoặc bạn sẽ vẫn đăng nhập vào máy chủ từ xa sau khi thực thi tập lệnh.

Nói ngắn gọn, đừng quên đặt nó ở cuối local_script.sh:

exit 0
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.