2016-07-22 113 views
0

我是Ubuntu和编程新手。 我正在测试一个我在github上找到的程序,用于下载OSM数据并将其导入到postgis中。使用Postgres的用户使用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(的Postgres的用户):

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

它创建的数据库,但可能在运行反渗透选择失败(渗透是在所有用户的路径)。 任何想法来解决这个问题?谢谢!

回答

0

的crontab命令只用最小的环境变量执行,即

PATH=/usr/bin:/bin(在Debian反正),

所以如果你依靠,在你的$PATH程序,它会失败。 考虑指定渗透程序的绝对路径,无论它来自哪里。

或者你可以改变$PATH本身在脚本

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

P.S:您可以通过添加一个简单的cron作业

* * * * * env > /tmp/env.txt 
检查环境