无法让cron脚本工作

时间:2011-10-18 13:49:42

标签: linux unix heroku cron crontab

我每天都运行这三个命令:

cd /Users/xxx/code
heroku pgbackups:capture --expire
curl -o latest.dump `heroku pgbackups:url`

所以我想我会尝试将它移到一个cron作业中,所以我创建了一个名为/ Users / xxx / code / backup_script的文件,其中包含以下内容:

cd /Users/xxx/code
heroku pgbackups:capture --expire
curl -o latest.dump `heroku pgbackups:url`

但是,当我运行./backup_script时,它会出现此错误:

./backup_script
./backup_script: line 2: heroku: command not found
./backup_script: line 3: heroku: command not found
curl: no URL specified!
curl: try 'curl --help' or 'curl --manual' for more information

我是一名unix新手 - 有人可以帮我弄清楚如何解决上面的脚本吗?

2 个答案:

答案 0 :(得分:4)

cronjob的环境变量会从您的登录中显着减少;你想为你的crontab设置$ PATH。

例如:

PATH=$HOME/bin:$PATH
@daily $HOME/backup_script

您可能希望运行which heroku来确定需要添加的路径。

答案 1 :(得分:0)

尝试添加一个shebang告诉它再次使用bourne shell(bash):

#!/bin/bash   
cd /Users/xxx/code
heroku pgbackups:capture --expire
curl -o latest.dump `heroku pgbackups:url`

heroku的完整路径可能有所帮助。

如果您在这里没有运气,您还可以尝试Unix/Linux堆栈交换站点: