Cron无法运行我的命令,即使它适用于我(在docker容器内)

时间:2016-02-16 21:23:01

标签: django docker cron

我有一个用于Django项目的Docker容器(带有postgres数据库),我创建了一个小脚本,以便每24小时进行一次自动备份。 在我的cron文件中,我有以下内容:

SHELL=/bin/bash
* * * * * whoami &>>/tmp/dbg.log
* * * * * cd /home/projects/my-project/ && . env/bin/activate && scripts/sh/auto_backup.sh &>>/tmp/cron_debug.log

修改

正在运行的脚本(auto_backup)如下所示:

#!/bin/bash

today=$(date +"%d_%m_%Y")
./manage.py dumpdata --indent=4 > backups/backup_${today}.json && echo "Backup complete"

完成修改

如果我自己运行cron命令,一切正常。但如果我让cron这样做,我总会得到以下错误:

CommandError: Unable to serialize database: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket     "/var/run/postgresql/.s.PGSQL.5432"?

我在Docker容器中运行它,在我的本地机器上运行顺畅。 postgres数据库确实位于另一个pod(在另一个容器中),但是当我手动运行该命令时,这似乎不是问题。此外,我检查了,whoami总是返回root,所以它似乎不是权限问题。

0 个答案:

没有答案