2016-10-02 2 views
0

cPanelパイプオプションを使ってrubyスクリプトを実行する方法を説明してもらえますか?基本的に私は電子メールが来るたびにルビースクリプトを実行したいと思います。スクリプトの中でいくつかのことをするために電子メールのデータを使いたいと思います。cPanelからRubyスクリプトへ電子メールを送る方法

私はこのような電子メールのcPanelのオプションを設定しています:

email_data = STDIN.read 

# Get email address 
#.... 

# Do somthing with the email address 
#... 

更新#1

:私はこのような何かをしようとしていますpipe_test.rbスクリプトの内部 enter image description here

もう少し読んだら、ruby pipe_test.rb testを実行することで、このスクリプトをシェルから起動させることができました。

email_data = ARGV[0] 

# Save data to a file 
File.open("test_pipe_data.txt", 'w') { |file| file.write(email_data) } 

# Get email address 
#.... 

# Do somthing with the email address 
#... 

しかし、私はcPanelの内のファイルのパスオプション「プログラムにパイプ」にスクリプトを追加するときには、スクリプトを実行していないようです。私は、ファイルのパスオプションの以下の組み合わせを追加しようとしていると、それらのどれも働いた:

home/pipe_test.rb 
home/pipe_test.rb test 
home/ruby pipe_test.rb test 
home/ruby ‘pipe_test.rb test’ 
home/‘ruby pipe_test.rb’ 
home/‘ruby pipe_test.rb test’ 

更新#2それは私がShebang行を追加するために必要とされている私の問題の一部のように見えます

私のスクリプトの一番上にあるので、シェルはスクリプトを実行するために使用するプログラムを知っています。だから私は非常に一番上の行にこれを追加しました:私は実行することによって、これが正しい道である確認

#!/usr/bin/env ruby 

which ruby 

私は、パスをプログラムする./pipe_test.rb cPanelのパイプを追加するつもりでした。問題は、今、私はシェルから./pipe_test.rbを実行すると、それは言っている:

: No such file or directory 

私はそのパスが存在し、それがないことを確認するecho $PATHを走ってきました。だから私はもう一度立ち往生している。

答えて

0

ここパイプについてお読みください:https://en.wikipedia.org/wiki/Pipeline_%28Unix%29

も、この点を確認してください。https://mikegriffin.ie/blog/20160525-using-pipe-with-ruby-scripts

あなたの最初のステップは、あなたがあなたのRubyスクリプトへのcPanelから得るものを考え出す必要があります。

+0

私は両方の記事を読んで、リンクから学んだことに基づいてアップデートを加えました。残念ながら私はまだcPanelにスクリプトを実行させることができません。 – MrAutoIt

+0

はあなたのサーバー上のスクリプトですか?あなたはスクリプトのフルパスを使用する必要があるように見えます – hovancik

+0

はい、それはサーバー上にあります。私はあなたが何を意味するのか分かりません。私はShebangまたはcPanelのパスに完全なパスを追加する必要がありますか?今すぐコマンドラインから./pipe_test.rbと入力すると実行されません。だから、私はcPanelがetherを実行できないと仮定しています。 – MrAutoIt

関連する問題