外出自粛中でも楽しく過ごす!QAまとめ>>

いつも大変お世話になっております。

かぎ交換済みの他サーバーに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"

「'」を「\"」にしてみたり、順番を入れ替えたりいろいろ試してはいるのですが手詰まりになりました。
解決方法をご存知の方がいらっしゃいましたらお助けください。

よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (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のサイズが膨大なら他サーバーで処理するメリットもありますが、そうでないならいろんな煩わしさがない分だけ手元に持ってきたほうが楽ですね。
    • good
    • 0

$ をエスケープするんじゃないかと。



ssh user@host1 "awk '/keyword/{print \$1,\$2,\$5}' /logs/session.log" | head
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング