コマンドラインから>、>>または|なしで出力をファイルにリダイレクトできますか?オペレーター?

コマンドラインから>、>>または|なしで出力をファイルにリダイレクトできますか?オペレーター?

CentOS仮想マシンでコマンドを実行しようとしていますが、このコマンドを実行するために使用するAPIが>、>>、または|演算子を受け入れないようです。また、コマンドへの完全修飾パス(たとえば、lsの代わりに/ bin / ls)を使用する必要があります。

特定のコマンドの出力をファイルに送信したいと思います。この場合、どうすればよいですか?理論的には、「正しい」シェルでリダイレクトを実行するスクリプトを実行できますが、これは非常に不便なオプションです。

答え1

リダイレクトはシェルによって解釈されます。 APIを使用している場合、実行されたコマンドはシェルを介して実行されず、直接(男性3システムそして人3が実行されます。)。

リダイレクトを使用するには、シェルを起動してリダイレクトを使用します。たとえば、次のようになります。

/bin/sh -c "command > redirect"

答え2

複数の仮想マシンがある場合は、pdshというプログラムを見てください。複数のリモートシステム(実際または仮想)で並列にコマンド(ssh経由)を実行するために使用できます。

これは、HPCクラスタで使用するために作成されていますが、Linux / Unixシステムのすべてのグループで使用できる便利なシステム管理ツールです。

https://computing.llnl.gov/linux/pdsh.html

たとえば、「compute」属性(openstack ディストリビューションの nova-compute ノード)として定義された複数のマシンがある場合は、次のコマンドを実行して 16 個以上のアイドルコアを持つノード数を確認できます (各ノードには 24 コア)。 )xxlarge 16コアVMを実行できます。

# pdsh -g 計算 "ps hwwu -Ckvm | sed -e 's/.*-smp //' -e 's/,.*//' |
awk'{VMS+=1; CPUS += \$1} END {VMS, CPUS, 24-CPUS 印刷}'" | \
awk '$4 > 15 {印刷}' |sort-k4-n
比較 17: 6 8 16
比較 19: 6 8 16
比較 23: 6 8 16
クラス26:7 8 16
比較 51: 7 8 16
比較 56: 6 8 16
比較 71: 7 8 16
比較 78: 7 8 16
比較 81: 6 8 16
比較 11: 6 7 17
比較 47: 6 7 17
比較 79: 6 7 17
比較 09: 5 6 18
比較 29: 5 5 19
比較 27: 4 4 20

(実際の使用量の出力、匿名性のためにホスト名が編集されます)

二重引用符内のコマンドはリモートシステムで実行され(シェル引用規則が適用されるため、最初のawkの\ $ 1)、残り(2番目のawkとsort)はローカルシステムで実行されます。

関連情報