Всё детально описано
здесь
Если кратко, то:
1) OSPanel - Настройки - Планировщик заданий.
"Минута / Час / Число / Месяц / День недели" выставить *
"Выполнить" ввести "путь к проекту/artisan schedule:run >> /dev/null 2>&1". Я делал "путь к проекту/artisan schedule:run" и этого хватало (но не факт, что так нужно делать).
2) Laravel. В файле "путь к проекту/app/Console/Kernel.php" в методе schedule (
док) с помощью методов объекта $schedule, который передается как параметр, (смотри ссылку ранее, но в разделе "Настройки частоты планировщика" - все методы отлично описаны) выставляешь частоту выполнения, аргументом методу передаешь анонимную функцию, в которой "твори, что хочется" - вызывай свои методы из допустимых (читать как подключенных) namespaces.
Примеры как добавлять задачи в методе schedule (взял из своего проекта):
/*
Cron - мой класс со статическими методами,
специально под планировщик
//*/
$schedule->call(function(){
// указываем функцию для выполнения
Cron::createCropioTasks();
// в ней вызываем свою
})
->everyMinute()
// выполнять каждую минуту
->name("cropio-tasks")
// именуем задание, чтобы при повторном вызове ...
->withoutOverlapping();
// ... она не накладывалась на предыдущий вызов этой задачи,
// если предыдущий вызов длится дольше минуты
$schedule->call(function(){
// тоже самое, указываем функцию для выполнения
Cron::createTravelFactCropio();
// в ней вызываем что-то свое
})
->everyTenMinutes()
// каждые десять минут
->name("cropio-fact")
// именуем задачу
->withoutOverlapping();
// и говорим "не запускайся, ...
// ... пока предыдущий твой вызов не завершился"
Все очень просто, и к тому же планировщик, в основном, настраивать нужно не на сервере, а в самом проекте.
Удачи!