パイプ操作 1 つのライナーを使用する AIX SSH が失敗します。

パイプ操作 1 つのライナーを使用する AIX SSH が失敗します。

収集するライナーがあります。間違い各AIX VIOサーバーに関する情報を表示するには、を使用しますssh。ただし、次のコマンドは機能しません。 VIOサーバー(oem_setup_env)のルートシェルで実行するコマンドをパイプしています。

ssh -padmin@VIOS1 "print \"errpt -T PERM,TEMP  -s 0610141418 -e 0701000018 \| awk -F " " '{print \$5,\$6,\$7,\$8,\$9}'\ | sort -u | sed -e "s/^/$(uname -n): /"\" | oem_setup_env"

次のエラーが発生します。

sed: 0602-404 Function s/^/VIOS1: cannot be parsed.

答え1

あなたの引用はすべて混乱しています。ローカルでテキストをoem_setup_env入力して送信する方が簡単ですssh

ssh admin@VIOS1 oem_setup_env << 'EOF'
errpt -T PERM,TEMP  -s 0610141418 -e 0701000018 |
    awk '{print $5,$6,$7,$8,$9}' | sort -u | sed "s/^/$(uname -n): /"
EOF

リモート実装の場合は、ここのドキュメントを使用して2つのレベルの引用エスケープを回避する方がprint簡単です(/特定のバックスラッシュ解釈を避ける必要があるものを使用するよりも)。kshzsh-r

ssh admin@VIOS1 'oem_setup_env << "EOF"
errpt -T PERM,TEMP  -s 0610141418 -e 0701000018 |
    awk '\''{print $5,$6,$7,$8,$9}'\'' | sort -u | sed "s/^/$(uname -n): /"
EOF'

関連情報