2016-02-28 38 views
0

我有这个.sh启动一个python文件。这个python文件在使用sudo通过命令行启动时生成一个.txt文件,但是通过.sh启动时不会生成.txt.sh由cron启动不通过python创建文件

为什么pyhton文件在启动cron和.sh时不会给我一个.txt文件?

当我使用su -c "python /var/www/html/readdht.py > /var/www/html/dhtdata.txt" 2>&1 >/dev/null,.sh给我输出,但省略了换行符,所以我得到一个大的字符串。

python文件在从命令行启动时会正确创建.txt文件,其格式为sudo python readdht.py

如果.SH蟒蛇文件开始su -c "python /var/www/html/readdht.py没有.TXT创建

这是怎么回事?

回答

0

难以回答,没有更多的颜色在您的环境。

下面是如何解决这个问题:不要将您的输出重定向到/ dev/null。然后在你的cron日志里看看发生了什么。看起来您的脚本很可能失败,因此不会将任何内容返回到标准输出,因此不会创建文件。

我高度怀疑这是因为您使用的是python模块,或者是在您的bashrc中加载​​的python版本或python路径。 Crontab不会执行你的bashrc,它是一个独立的环境,所以你不能假定当你手动启动的脚本在你的cron中可以正常运行。

尝试在你的cron任务中寻找你的bashrc,它很可能解决你的问题。