• 締切済み

sshで他サーバーにログインしつつコマンドを実行

いつも大変お世話になっております。 かぎ交換済みの他サーバーにsshでログインしつつ、ログからキーワードを指定してデータを取得したいのです。 下記の記述で、ログの内容を取得できるようにはなりました。 ssh user@host1 "cat /logs/session.log | grep 'keyword' | head" しかしながら、項目数の多いフォーマットなので必要箇所だけを絞りたいため【awk】コマンドを使用したいのですが、無視されるようで希望の形になってくれません。 ssh user@host1 "cat /logs/session.log | grep 'keyword' | awk '{print $1, $2, $5}' | head" 「'」を「\"」にしてみたり、順番を入れ替えたりいろいろ試してはいるのですが手詰まりになりました。 解決方法をご存知の方がいらっしゃいましたらお助けください。 よろしくお願いいたします。

みんなの回答

回答No.2

むしろ、こうやって全て他サーバーで処理させるよりも、手元に持ってきたほうが楽なのではないかと? before) ssh user@host1 "cat /logs/session.log | grep 'keyword' | head" after) ssh user@host1 cat /logs/session.log | grep 'keyword' | head こう書くと、他サーバーで処理されるのはcat /logs/session.logまでで、そこから先は手元で全て処理します。session.logのサイズが膨大なら他サーバーで処理するメリットもありますが、そうでないならいろんな煩わしさがない分だけ手元に持ってきたほうが楽ですね。

  • trapezium
  • ベストアンサー率62% (276/442)
回答No.1

$ をエスケープするんじゃないかと。 ssh user@host1 "awk '/keyword/{print \$1,\$2,\$5}' /logs/session.log" | head

関連するQ&A

専門家に質問してみよう