Опубликовано 3 комментария

shell_exec не работает в crontab в php скрипте

Задача: сравнить размеры файлов для контроля изменений в них. Заставить работать по крону.

При запуске скрипта из браузера все в порядке. Отлично работала функция $file['size']=filesize("/path to file/my_scrip.php"); При попытке запуска скрипта по крону, размер файлов не подсчитался, то есть функция filesize не сработала. Заменил filesize("/path to file/my_scrip.php"); на shell_exec('stat -c %s /path to file/my_scrip.php'). То же самое. При запуске скрипта из браузера и в консоли SSH команда stat -c %s /path to file/my_scrip.php показывает размер файла, а по крону не работает.

В консоли SSH команда stat -c %s /path to file/my_scrip.php показывает размер файла, а по крону не работает.

На просторах интернета нашел решение:

chdir($root_path."/"); // $root_path - абсолютный путь к папке нашего скрипта.
$arFile['size'] = trim(shell_exec('stat -c %s '.escapeshellarg($main_dir . "/" . $dir))); // Выполняем команду stat...
$current_dir = getcwd(); //Получаем 
chdir($current_dir);</code>

В моем случае директории ($root_path."/" и $current_dir) совпадают. Позже проверю и поправлю статью.

3 комментария к “shell_exec не работает в crontab в php скрипте

  1. Спасибо) Очень помогло! все просто и понятно!

  2. Поправил статью. Удалил лишний код ‘code data-enlighter-language=»php» class=»EnlighterJSRAW»‘

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *