-2

Linuxサーバー上のRubyでスクリプトを書くことはありません。サーバーからの統計が必要で、Ruby の初心者です。

Linuxコマンドを使用するためにexecを使用すると、プログラムがエラーなしで落ちるため、Linuxコマンドに問題があります。

disks = ["sda", "sdb"]

コード:

disks.each do |disk|
  puts "disk test start"
  exec "smartctl -a /dev/#{disk} > /tmp/sestavy/#{disk}"
  puts "disk test end"
end

出力:

[root@banan sestavy]# ruby test.rb
disk test start
[root@banan sestavy]#

ありがとうホンザ

4

2 に答える 2

1

つまりexec、現在実行中のプログラムを新しいプログラムに置き換えます。これは Ruby に固有のものではなく、シェル、C、その他のほとんどの環境で同じように機能します。

于 2013-07-26T12:17:09.647 に答える
1

を使用するexecと、現在のプロセスが実行したいものに置き換えられます。したがって、Ruby スクリプトには戻りません。シェル実行のさまざまな方法については、この説明を参照してください。

于 2013-07-26T12:16:56.767 に答える