/ / Ruby Rye, metodo Errore mancante durante l'esecuzione del comando ps -aux shell - ruby

Ruby Rye, Method Errore mancante durante l'esecuzione del comando ps -aux shell - ruby

Ho uby-1.9.3-p551 e rye-v0.9,12 installati

Ho fatto quanto segue:

rbox = Rye::Box.new("#{@host}")
puts rbox.cat("/tmp/restorelog.txt")
rbox.execute("ps aux | grep ruby > /tmp/ruby-process-list")

Il comando cat funziona correttamente ed elenca l'input del file Tuttavia, per il comando execute ottengo il seguente errore:

lib / rye / box.rb: 462: in `method_missing": ps aux | grep ruby> / tmp / ruby-process-list (Rye :: CommandNotFound)

Devo prima aggiungere il comando? Ho ipotizzato che il metodo execute eseguirà qualsiasi comando shell definito dall'utente

risposte:

4 per risposta № 1

Prima di utilizzare il metodo execute, è necessario disabilitare safe_mode:

rbox.disable_safe_mode

Quindi, il tuo codice sarà simile a:

rbox = Rye::Box.new("#{@host}")
puts rbox.cat("/tmp/restorelog.txt")
rbox.disable_safe_mode
rbox.execute("ps aux | grep ruby > /tmp/ruby-process-list")

Come indicato nella documentazione:

Quando la modalità provvisoria è disabilitata, è possibile eseguire qualsiasi comando (indipendentemente da ciò che è definito nella whitelist) con qualsiasi argomento valido (fileglobs, tildas, ecc ...).

La parte "etc" include le pipe.