2016-04-16 20 views
-1

私はここでこれを行う方法について調査しましたが、誰も私の問題を本当に解決しませんでした。部分的に私が呼ばれる毎日実行するようにスケジュールを設定しようとしていますRscriptを持って、残念ながらMac OSXでcrontabを使ってRScriptを実行する方法

....私は何が起こっているか理解していないので:JASON.r

スクリプト内のコードは次のとおりです。

setwd("/Volumes/3TB/") 
install.packages("quantmod");library("quantmod") 
getSymbols("AAPL") 
write.csv(AAPL,"/Volumes/3TB/AAPL.csv") 
quit(save='no') 

私はこれを行う方法についてTHIS PAGEが見つかりましたが、成功していません。 は、私は何をすることは、オープン端末とタイプである:それは次のように返し

Jason-Guevaras-iMac:~ rimeallthetime$ sudo crontab -e

いる:

crontab: no crontab for root - using an empty one 

~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
"/tmp/crontab.fwiSAwWI4R" 0L, 0C 

それでは、私は同様の問題があったTHIS POST渡って来て、私が入力したとき:

Jason-Guevaras-iMac:~ rimeallthetime$ sudo su - 
Jason-Guevaras-iMac:~ root# crontab -u rimeallthetime -e 
crontab: no crontab for rimeallthetime - using an empty one 

~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
~                    
"/tmp/crontab.L1nPwJdBRi" 0L, 0C 

これは現在私が現在いる場所です。

私は挿入モードに入るように

sudo crontab -e 

プレス

私はターミナルではMAC OSXエルキャピタンのバージョン10.11.4

答えて

2

を持っている、とのcrontabを開きます。

0 */23 * * * Rscript /path/to/file/JASON.r 

押しEscキー挿入モードのままに:

は、次の行を追加します。

タイプZZ

あなたは次のようなメッセージが表示されるはずです。crontab: installing new crontabを。

crontab -lを使用してcrontabファイルを確認できます。

その他:

これは、23時間ごとにファイルを実行します。

各スター/位置に対応:

MIN HOUR DOM MON DOW CMD 

あなたのニーズに合った、それは自由に変更してください。

+0

返事のおかげで、私は次のエラーを取得: 'crontabファイル:インストールする新しいcrontabの 「/tmp/crontab.bMC06Mo8eN":1:悪い時間 のcrontab:crontabファイルのエラーを、 をインストールすることはできませんですか同じ編集をやり直したいですか? ' – Rime

+0

私は時間を変更しました。23x * * * Rscript/Volumes/3TB/JASON.R'ですが、rscriptは' .csv'ファイルを作成しているので、出力を作成しませんでした – Rime

+0

正しい、それは私の現地時間でしたが、それは翌日に始まることを意味しますか?私はそれが実行されるかどうかをテストするために午前2時30分に変更しました – Rime

2

cronはまだOSXではサポートされていますが、it has been deprecated in favorlaunchdです。

launchdジョブを作成するには、スクリプトを実行してフォルダ~/Library/LaunchAgentsに配置するのに必要なすべての情報を提供する「plist」ファイルを作成する必要があります。ここでは例のplistファイルがあります:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
     <key>Label</key> 
     <string>jason</string> 
     <key>ProgramArguments</key> 
     <array> 
       <string>Rscript /path/to/JASON.R</string> 
     </array> 
     <key>StartCalendarInterval</key> 
     <dict> 
       <key>Minute</key> 
        <integer>0</integer> 
       <key>Hour</key> 
        <integer>23</integer> 
     </dict> 
</dict> 
</plist> 

次にあなたがlaunchdのスケジューラにこのplistファイルをロードし、それを起動する必要があります。2行目

launchctl load ~/Library/LaunchAgents/jason.plist 
launchctl start jason 

jasonがフィールドにLabelに対応しますplistファイル。

関連する問題