【发布时间】:2016-08-15 03:43:26
【问题描述】:
我有一个 bash 程序,它从文件中挑选数据并将这些数据(如果满足阈值)传递到另一个文件。 它是名为 smaoutput-analysis.sh 的 bash 脚本中的一个 php 脚本 当从 shell 执行时,它功能完美。 当以 root 身份作为 cron 作业执行时,执行正确,但没有输出。
这是grep -i cron /var/log/syslog的输出
从 shell 运行时(如前所述)正确添加了信息
#!/usr/bin/php
<?php
echo " Programm to read smaoutput.txt",PHP_EOL;
// etc etc
`if(!file_put_contents("sma_saved_data.txt",$sma_saved_data_string,FILE_APPEND)){
// failure
echo "error opening the file sma_saved_data.txt for writing",PHP_EOL;
}
// etc etc
?>
这里是 crontab 行:
# Every minute result of SMA
*/1 8-22 * * * /home/pi/scripts/SBFspot.sh > /home/pi/test/smaoutput.txt 2>&1
# afterwards read and save in file
*/1 10-20 * * * /home/pi/test/smaoutput-analyse.sh > /dev/null 2>&1
我想我已经为文件设置了正确的文件权限 +rw 和 bash 的 +rwx
我错过了什么
【问题讨论】:
-
Cron 脚本在非常有限的环境中运行,这意味着
PATH和其他环境变量可能不是您所期望的。工作目录可能也不是您所期望的。 -
将
sma_saved_data.txt替换为您要保存文件的绝对路径。