Представлен простой пример запуска php скрипта по расписанию Cron с разными вариациями записи результатов выполнения в логи, передачей параметров и отслеживанием времени выполнения скрипта.

Файл index.php:

@set_time_limit(0);
//@ignore_user_abort(true);

ini_set('memory_limit', '1024M');

$path = realpath(__DIR__);
//$consoleExec = 'php -c /etc/php/8.2/cli/php.ini ';
$consoleExec = '/usr/bin/php ';
$logPath = $path  . '/runtime/';
if (!is_dir($logPath)) mkdir($logPath);

try {
    if (php_sapi_name() === 'cli') {
        error_log(date('Y/m/d H:i:s') . ': Application start' . PHP_EOL, 3, $logPath . '/app.log');

        // Code ...
        $name = 'John Smith';

        // Строка выполнения с параметром `name` и выводом в файл `CommandExecutionResult`
        $command = $consoleExec . " /var/www/html/command.php  --name='$name' > {$logPath}CommandExecutionResult.log 2>&1 &";
        exec($command);
    } else {
        throw new Exception('Скрипт запускается Не из консоли!');
    }
} catch (Exception $exception) {
    die($exception->getMessage());
}

Файл command.php:

// Отслеживаем время выполнения скрипта и размер потребляемой памяти
$start = microtime(true);
$memory = memory_get_usage();

// Записываем в лог
$log = __DIR__ . '/runtime/log.txt';
$date = date('Y/m/d H:i:s');

echo 'Старт службы...' . PHP_EOL;

$startMessage = $date . ' Запись в лог: Служба запустилась... ';
file_put_contents($log, $startMessage . PHP_EOL, FILE_APPEND);

// Принимаем параметры
$name = substr($argv[1], 7);

for ($i = 1; $i <= 10; $i++) {
    echo $date . " Итерация $i для клиента $name" . PHP_EOL;
}

$endMessage = $date . ' Запись в лог: Служба остановилась... ';
file_put_contents($log, $endMessage . PHP_EOL, FILE_APPEND);

$memory = memory_get_usage() - $memory;
$name = ['байт', 'КБ', 'МБ'];
$i = 0;
while (floor($memory / 1024) > 0) {
    $i++;
    $memory /= 1024;
}

echo 'Время выполнения скрипта: ' . (microtime(true) - $start) . ' sec.' . PHP_EOL;
echo 'Использовано памяти: ' . round($memory, 2) . ' ' . $name[$i] . PHP_EOL;

echo 'Служба остановлена...' . PHP_EOL;

Расписание Cron:

# Запускать в 10:00 с понедельника по пятицу
0 10 * * 1-5  /usr/bin/php /var/www/html/index.php >/dev/null 2>&1

Cron: краткое пособие для начинающих