2016-07-22 10 views
0

私はUbuntuとプログラミングの新人です。 githubで見つけたプログラムをテストして、OSMデータをダウンロードしてポストギスにインポートします。 postgresユーザを使用してcrontabでMakefileを実行する

make all NAME=dbname URL='http://myurl' 

:私は、端末(URLと名前が偽物です)から、それを実行すると それは動作します。

このコマンドを毎日実行する必要があります。 だから私は、そのスクリプトを書いた:

#!/bin/bash 
# go to the directory with Makefile 
cd /PCuserhome/directory/to/Makefile/ 
# run Makefile 
make all NAME=dbname URL='http://myurl' 

を、私はターミナルから、それを実行したときにそれが動作します。

だから私は、このように(postgresユーザの)のcrontabにそれを追加しました:

0,15,30,45 * * * * /PCuserhome/myscript.sh 

それは、DBを作成しますが、おそらく(浸透は、すべてのユーザーのパスにある)浸透の選択を実行するには失敗します。 これを解決するための任意のアイデアですか?ありがとうございました!

答えて

0

のcrontabコマンドは、あなたの$PATHしているプログラムに依存している場合

PATH=/usr/bin:/bin(Debianではとにかく)、

がそう、それは失敗します、すなわち、最小限の環境変数で実行されています。 浸透度プログラムの絶対パスを指定することをお勧めします。あなたは、単純なcronジョブ

* * * * * env > /tmp/env.txt 
を追加することで、環境を確認することができます。:

また、あなたのスクリプトで

export PATH="/my/bin:$PATH" 

p.sを$PATH自体を変更することができます

関連する問題