从 crontab 运行时,trac-admin hotcopy 不起作用

从 crontab 运行时,trac-admin hotcopy 不起作用

我最近将 Trac 从 0.11.4 更新到了 0.12.2。我使用以下 shell 脚本来备份 Trac 安装:

#!/bin/sh
DIR=/root/backup/trac/
NAME=`date +%Y-%m-%d-%H-%M`
cd $DIR
trac-admin /var/trac/projects/myproject/ hotcopy ./temp
tar -zcf TRAC_$NAME.tar.gz -C $DIR/temp .
rm -rf ./temp

从控制台运行时,它工作正常,但 cronjob 失败并显示以下消息:

Traceback (most recent call last):
 File "/usr/bin/trac-admin", line 5, in <module>
   from pkg_resources import load_entry_point
 File "/usr/lib/python2.6/dist-packages/pkg_resources.py", line 2675, in <module>
   parse_requirements(__requires__), Environment()
 File "/usr/lib/python2.6/dist-packages/pkg_resources.py", line 552, in resolve
   raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: Trac==0.11.4
tar: /root/backup/trac//temp: Cannot chdir: No such file or directory
tar: Error is not recoverable: exiting now

为什么手动运行时可以工作,而从 crontab 运行时却不行?如果我现在使用 0.12.2,为什么它会寻找 0.11.4 版本的 Trac?

Trac 已安装并升级easy_install

答案1

建议在 cron 作业中使用完整路径。否则,您可能最终会调用错误的脚本或程序。

此外,您需要确保在同一用户下执行脚本。

相关内容