Есть php скрипт:
#!/usr/bin/php
<?php
ini_set('display_errors', 1); // убираем Notice:
error_reporting(E_ERROR | E_WARNING | E_PARSE);
mb_internal_encoding("UTF-8"); // Устанавливаем внутреннюю кодировку символов.
$conf = parse_ini_file('config.ini'); // читаю config.ini
$dump_dir = $conf['dump_dir']; // папка хранения бэкапов
$mega_dir = $conf['mega_dir']; // папка хранения бэкапов на облаке MEGA
$root = '/Root';
$date = date("Y-m-d"); // текущая дата
echo "\n";
echo "\nОтправка бэкапов на облако ".date("H:i:s d.m.Y")."\n\n";
///usr/bin/
exec("megamkdir $root$mega_dir/$date"); // создаем на облаке папку для хранение новых бэкапов
$str = shell_exec("megacopy --local $dump_dir/$date --remote $root$mega_dir/$date"); // синхронизация каталога
echo "$str\n";
echo "\nОтправка бэкапов завершена ".date("H:i:s d.m.Y")."\n\n";
?>
сделал его исполняемым:
chmod +x ~/send-mega.php
Если запускаю из консоли:
~/send-mega.php
скрипт отрабатывает идеально и отравляет файлы на Мегу.
Добавил его в крон:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
30 14 * * * /home/user/send-mega.php >/home/user/cron.tmp
в файле cron.tmp видно, что скрипт запускался, но отправлять файлы не хочет.
И в переменное $str ничего нет, потому что в файл ничего не записалось.
В чем может быть проблема?
P.S.
вставил в начале скрипта
echo getcwd() . "\n";
написало:
/root
и я теперь не пойму, что делать.
В скрипт добавил полный путь к утилитам "/usr/bin/", но все равно не работает.
Тоже самое написал на bash. С полными путями. Но если с консоли - bash-скрипт работает. А с крона - не хочет, как и php-скрипт.