![ホスト名と[sudo]行を書かずにローカルでSSH + sudo出力をキャプチャできますか?](https://linux33.com/image/48130/%E3%83%9B%E3%82%B9%E3%83%88%E5%90%8D%E3%81%A8%5Bsudo%5D%E8%A1%8C%E3%82%92%E6%9B%B8%E3%81%8B%E3%81%9A%E3%81%AB%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E3%81%A7SSH%20%2B%20sudo%E5%87%BA%E5%8A%9B%E3%82%92%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A3%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F.png)
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
これは次のことを行います。
sudo
1つの引数として呼び出されますls
。- 標準出力にリダイレクトします
ls_output.txt
。 - 標準エラーにリダイレクトします
/dev/null
。
上記のコマンドを使用すると、現在の作業ディレクトリの内容が一覧表示され、ls_output.txt
その中にデータはありません。stderr