Chuyển hướng stdout qua ssh


17

Tôi muốn chạy

something > file

trên một hệ thống từ xa thông qua ssh, nhưng nếu tôi chạy

ssh host something > file

chuyển hướng được thực hiện cục bộ như ssh etc > file

Tôi đã thử nó bằng 'hoặc ''hoặc ddvới một đường ống |thay thế, nhưng tôi không thể làm cho nó hoạt động. Điều này có thể giải quyết như thế nào?


Câu trả lời:


11

Thử:

ssh host 'something > file'

Đây là một minh chứng rõ ràng về cách xử lý chuyển hướng, đường ống và dấu ngoặc kép:

ssh host date -d yesterday \| awk "'{print $1}'" \> 'file" "with\ spaces.out'

Các đường ống và chuyển hướng được thoát ra thay vì được chứa trong một tập hợp trích dẫn bên ngoài tổng thể, làm giảm nhu cầu thoát khỏi một mức báo giá. Các trích dẫn đơn cho lệnh AWK được bảo vệ bởi các dấu ngoặc kép bao quanh chúng. Tên tệp có thể được bảo vệ theo cùng một cách, nhưng ở đây tôi chỉ ra cách các dấu ngoặc đơn bảo vệ dấu ngoặc kép và thoát.


thanx - nó hoạt động!
franziskus

2
Vì ssh chuyển phần đó của dòng lệnh của nó sang shell, nên bạn không cần sh -cphần đó.
Jander

Điều gì nếu bạn có dấu ngoặc kép và dấu ngoặc đơn trong lệnh của bạn đã có? Nếu nó không quá xa chủ đề thì tôi chắc chắn những người khác sẽ muốn biết làm thế nào ...
mê cung

1
@labyrinth: Tôi đã thêm một ví dụ để cung cấp cho bạn một số ý tưởng. Lưu ý rằng shell cục bộ tiêu thụ (các) bộ trích dẫn ngoài cùng và shell từ xa tiêu thụ cấp độ tiếp theo. Nói cách khác, ví dụ, AWK không thấy bất kỳ dấu ngoặc kép nào trong các đối số của nó như được hiển thị, nhưng nó $1được bảo vệ khỏi bị xem bởi shell như một biến shell. Nhưng nó sẽ không được nếu thứ tự của các trích dẫn là ngược lại.
Tạm dừng cho đến khi có thông báo mới.

10

Thậm chí đơn giản hơn, thay vì:

ssh host something > file

làm:

ssh host "something > file"

đây nên là câu trả lời được chấp nhận bởi vì nó đến sớm hơn câu trả lời khác.
phil294

Vâng, câu trả lời được chấp nhận trong năm 2010 là không tốt. Nó đã được thay đổi vào năm 2014 có lẽ để phù hợp với câu trả lời này. unix.stackexchange.com/revutions/1631/1
Amala

3

Các giải pháp đề xuất làm việc với các đường ống là tốt

ssh host 'some_command | some_other_command'
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.