2016-07-22 3 views
0

저는 우분투 및 프로그래밍에 새로운 사람입니다. github에서 찾은 프로그램을 테스트 중이며, OSM 데이터를 다운로드하여 Postgis로 가져옵니다. 내가 터미널에서 실행 (URL과 이름을 가짜) 때 그것은 작동 :crontab을 사용하여 Makefile을 실행하십시오.

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

포스트 그레스 사용자를 사용.

이제 매일이 명령을 실행해야합니다. 그래서 나는 그 스크립트 작성 :

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

을하고 난 터미널에서 실행할 때 작동합니다.

그래서 나는 이런 식으로 (포스트 그레스 사용자의) crontab에 추가 한 :

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

는 그것은 DB를 생성하지만, 아마 투 선택을 실행 실패 (투는 모든 사용자의 경로에). 이 문제를 해결할 생각이 있습니까? 고맙습니다!

답변

0

의 crontab 명령은 당신이 당신의 $PATH에있는 프로그램에 의존하는 경우

PATH=/usr/bin:/bin (데비안에 어쨌든),

그래서, 그것은 실패 즉, 최소한의 환경 변수로 실행됩니다. 삼투 프로그램이 호출 된 곳의 절대 경로를 지정하는 것이 좋습니다. 간단한 cron 작업

* * * * * env > /tmp/env.txt 
을 추가하여 환경을 확인할 수 있습니다 :

또는 당신은 당신의 스크립트에서

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

p.s을 $PATH 자체를 변경할 수 있습니다

관련 문제