我有一個 PERL 腳本,它從命令列呼叫 PHP 腳本并通過電子郵件發送輸出。此腳本在從命令列執行時作業正常,但在通過 cron 執行時失敗。我嘗試從我自己的 crontab 以及根 cron 執行腳本,結果相同。
這是腳本:
#!/usr/bin/perl
my $file = "/app/testing/testfile.php";
my $output = `php $file`;
#Sending e-mail here
這是它正在呼叫的 PHP 腳本:
fopen('/app/testing/log.txt', 'w');
fwrite('hi');
echo 'hi';
從命令列運行時,我收到一封帶有“hi”字樣的電子郵件,并且該檔案包含“hi”字樣。從 cron 運行,我收到一封空白電子郵件,并且檔案沒有被修改。
uj5u.com熱心網友回復:
提供完整路徑php:
my $output = `/path/to/php $file`;
這是因為cron使用了一個相當簡化的環境,具有極簡主義的$PATH.
或者,在 中獲取您的.*rc檔案cron,但這可能是一種矯枉過正:
03 */1 * * * source ~/.zshrc &> /dev/null ; /path/to/my_script.pl
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/494020.html
上一篇:使用正則運算式在腳本中屏蔽SSN(bash/perl/python)
下一篇:用常量字串替換json物件值
