postgresql 使用crontab运行Makefile

du7egjpx  于 2023-11-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(124)

我是Ubuntu和编程的新手。我正在测试我在github上找到的一个程序,下载并导入OSM数据到postgis。当我从终端运行它时,它可以工作(url和名称是假的):

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

字符集
使用postgres用户。
现在我需要每天运行这个命令。所以我写了这个脚本:

#!/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


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

isr3a4wc

isr3a4wc1#

crontab命令仅在最小环境变量(即,
PATH=/usr/bin:/bin(无论如何在debian上),
因此,如果你依赖的程序是在你的$PATH,它会失败。考虑指定一个绝对路径到osmosis程序,无论它是从哪里调用。
或者,您可以在脚本中更改$PATH本身

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

字符集
p.s.:你可以通过添加一个简单的cron作业来检查环境

* * * * * env > /tmp/env.txt

相关问题