@Azigar

CRON + PHP + MEGATOOLS почему не работает?

Есть 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-скрипт.
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ответы на вопрос 1
Adamos
@Adamos
Вставьте в начало скрипта
echo getcwd() . "\n";
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы