我有一個bash程序,它從文件中選取數據並將這些數據(如果滿足閾值)傳遞給另一個文件。 這是一個名爲smaoutput-analyse.sh的bash腳本中的php腳本。當從shell執行它時,它的功能非常完美。 作爲cron作業執行時,作爲root執行的是正確的,但沒有輸出。bash腳本從命令行運行但不是從cron運行
下面是grep -i cron /var/log/syslog
Aug 14 16:06:01 raspberrypi CRON[6705]: (root) CMD (/home/pi/scripts/SBFspot.sh > /home/pi/test/smaoutput.txt 2>&1) Aug 14 16:06:01 raspberrypi CRON[6706]: (root) CMD (/home/pi/test/smaoutput-analyse.sh > /dev/null 2>&1)
輸出的信息是(如前面提到的)正確地添加運行FOM當殼
#!/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
我想我已經爲文件和+ rwx設置了文件權限正確+ rw在bash
我錯過了什麼
Cron腳本在非常有限的環境下運行,這意味着'PATH'和其他環境變量可能不是您所期望的。工作目錄可能也不是你所期望的。 –
將'sma_saved_data.txt'替換爲您要保留文件的絕對路徑。 –