Stdout'u ssh üzerinden yönlendirme


Yanıtlar:


11

Deneyin:

ssh host 'something > file'

İşte yeniden yönlendirme, borular ve tırnaklarla başa çıkmanın bir yolunu gösteren tutarlı bir gösteri:

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

Boru ve yeniden yönlendirme, genel bir dış tırnak kümesinde yer almak yerine kaçar ve bir düzey tırnaktan kaçma ihtiyacını azaltır. AWK komutu için tek tırnaklar, onları çevreleyen çift tırnaklarla korunur. Dosya adı aynı şekilde korunabilir, ancak burada tek tırnakların çift tırnakları ve kaçışı nasıl koruduğunu göstereceğim.


thanx - işe yarıyor!
franziskus

2
Ssh, komut satırının bu bölümünü kabuğa geçirdiği için, parçaya ihtiyacınız yoktur sh -c.
Jander

Komutunuzda çift tırnak ve tek tırnak varsa ne olur? Eğer konu çok uzak değilse, eminim başkaları nasıl olduğunu bilmek isteyecektir ...
labirent

1
@labyrinth: Size bazı fikirler vermek için bir örnek ekledim. Yerel kabuğun en dıştaki tırnak kümesini / kümelerini ve uzak kabuğun bir sonraki düzeyi tüketdiğini unutmayın. Başka bir deyişle, örneğin AWK, argümanlarında gösterildiği gibi herhangi bir alıntı görmez, ancak $1kabuk tarafından kabuk değişkeni olarak görülmesini önler. Ancak tekliflerin sırası zıttı olmazdı.
sonraki duyuruya kadar duraklatıldı.

10

Şunun yerine daha da basit:

ssh host something > file

yapmak:

ssh host "something > file"

bu kabul edilen cevap olmalı çünkü diğerinden daha erken geldi.
phil294

Evet, 2010'da kabul edilen cevap o kadar iyi değildi. 2014'te muhtemelen bu cevaba uyacak şekilde değiştirildi. unix.stackexchange.com/revisions/1631/1
Amala

3

Önerilen çözüm borularla da çalışır

ssh host 'some_command | some_other_command'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.