Search code examples
phpcronexeclftp

PHP exec doesn't return LFTP output when run from crontab


I have a PHP file (/path/to/file.php) containing an exec-command:

$result = exec('lftp -u USER,PASS sftp://USER@IP:PORT -e "cd FOLDER; mput -E FILE; quit;"');

When I run the command "php /path/to/file.php" in the terminal, $result has a value "X bytes transferred"

When I create a cron task for the same user using the exact same command, the $result is always an empty string. The command still works though, the file can be found on the FTP-server.

How can I get the cron version to output something so I can confirm that the transfer was succesfull?


Solution

  • So the solution was to add the following setting to a LFTP config file (for example /etc/lftp.conf):

    set cmd:interactive yes