ホスト名と[sudo]行を書かずにローカルでSSH + sudo出力をキャプチャできますか?

ホスト名と[sudo]行を書かずにローカルでSSH + sudo出力をキャプチャできますか?

SSHコマンド実行の出力をローカルに作成するときにホスト名と[sudo]行を抑制できますか?

たとえば、サーバーにSSHで接続して実行すると、sudo <command>次のように表示されます。

<hostname>
[sudo] password for user:

これは出力を書き込むファイルに書き込まれます。使っているsudo <command> 2>&1 /dev/nullのに線が消えませんね。

ベストアンサー1

sudo <command> 2>&1 /dev/null何もリダイレクトされません/dev/null。代わりに次のようになります。

  • 2つのパラメータを呼び出すsudo<command>/dev/null。 2番目の項目は<command>実行時に渡されます。
  • エラーメッセージを標準出力にリダイレクトします。

以下は簡単な試みです。

$ sudo ls 2>&1 /dev/null
/dev/null

参照:あなたが得た結果ls /dev/null。ただし、次のことができます。

$ sudo ls >ls_output.txt 2>/dev/null

これは次のことを行います。

  • sudo1つの引数として呼び出されますls
  • 標準出力にリダイレクトしますls_output.txt
  • 標準エラーにリダイレクトします/dev/null

上記のコマンドを使用すると、現在の作業ディレクトリの内容が一覧表示され、ls_output.txtその中にデータはありません。stderr

おすすめ記事