Где находятся файлы crontab?

razorg1991

Новичок
Не могу понять одну вещь. Где же находятся эти файлы crontab на хостинге?

Википедия говорит могут быть 2 варианта: /usr/spool/cron/crontabs/ и /var/spool/cron/tabs/ . Я так понимаю это не в папке public_html? Можно ли получить доступ к файлам (а точнее файлу пользователя crontab, т.е. от моей учетной записи на хостинге) crontab через ftp?

Задача состоит в следующем: мне нужно изменять динамически средстами php этот самый файл crontab (динамически создавать в нем задания), а не создавать каждое задание в панели хостинга.

Как это осуществить?
 
Не надо этого хотеть - раз. Два - получить доступ нельзя.Три - ты решаешь задачу неправильно, надо смотреть в область отложенных заданий в виде queue, и менеджеров очередей.

Опиши задачу нормально.
 
Нет, если очень хочется, то, конечно, можно.
Но не так, как ты - грязными руками в глотку лезть.
Есть утилита crontab.
Вот только на говношареде настройки, сделанные через неё, обычно затираются настройками панели при каждом удобном случае.
 
Вот только на говношареде настройки, сделанные через неё, обычно затираются настройками панели при каждом удобном случае.

Вообще планирую, не шаред, а впс или вдс брать.

Три - ты решаешь задачу неправильно, надо смотреть в область отложенных заданий в виде queue, и менеджеров очередей.

По поводу очередей и отложенных заданий можно по подробнее? Можно ли ссылочку на то чем пользуетесь, с документацией бы ознакомился.

Опиши задачу нормально.

Да задача простая. В моем проекте есть база пользователей с данными. Данные берутся со стороннего ресурса через API. 2-3 раза в день надо брать эти данные и сохранять их в базу. Потом необходимо производить манипуляции с этими данными, тоже 2-3 раза в день.

Смотрел в Ларавел есть класс планировщик, уже думал в эту сторону, но жаль что его нельзя отдельно использовать, использую другой фреймворк.
 
@razorg1991, в твоем случае cron самый простой и надежный вариант. Вот только необходимость менять его через ftp доступ вызывает у меня дикое недоумение. Если надо что-то скачивать 2-3 раза, и 2-3 раза менять данные/обрабатывать - где здесь необходимость постоянной менять crontab? Хватит одного скрипта на скачку и одного - на обработку, или вообще одного на то и то вместе.
 
@razorg1991, в твоем случае cron самый простой и надежный вариант. Вот только необходимость менять его через ftp доступ вызывает у меня дикое недоумение. Если надо что-то скачивать 2-3 раза, и 2-3 раза менять данные/обрабатывать - где здесь необходимость постоянной менять crontab? Хватит одного скрипта на скачку и одного - на обработку, или вообще одного на то и то вместе.

Мне в данной ситуации, не обязательно все делать именно через cron. Я ищу способы реализации фонового режима выполнения скриптов. Данных будет очень много. За раз выполнять этот скрипт мне не один шаред по ограничению времени не даст, впс или вдс - может быть, но опять таки зачем мне это надо? Мне проще не поочередно каждого пользователя перебирать до бесконечности и выполнять с ним десйствия, а запустить к примеру одновременно несколько потоков, пользователей по 10-20 в пачке. Так будет быстрее и не надо со временем выполнения скрипта мучаться.
 
@razorg1991, надеюсь, ты знаешь как запустить скрипт в несколько потоков и чтобы они не обрабатывали одинаковые данные

PS: готовых классов не знаю, писал свои обычно.
 
Ну это уж тебе виднее, но такая ситуация - вполне себе может случиться :D
 
Ладно будем искать готовые решения или же писать свой велосипед ))) По крайней мере теперь хоть понимаю куда копать
 
Мне в данной ситуации, не обязательно все делать именно через cron. Я ищу способы реализации фонового режима выполнения скриптов.
Повесить ОДИН скрипт в крон, расписать его выполнение как тебе надо и больше не трогать.
У меня таки е скрипты годами работают. Потом открываешь планировщик и хорошо если там комментарии не забыл прописать.
А то можно весь вечер разбираться, что тот или иной скрипт делает.
И, да, сколько "много" данных? Сотни тысяч новых записей за раз?
 
Нет, я имел в виду именно сколько предполагается получать новых записей за один запрос.
Или так: С какой скоростью эти записи плодятся на источнике?
Если их там сотня в час появляется, то это объём ни о чём и можно в (x *) всё сразу обрабатывать.
 
В общем поизучав некоторую информацию пришел к выводу, что проще написать свой велосипед, по типу планировщика в ларавел http://laravel.su/docs/5.0/artisan
Логика следующая:
1. Cron ежеминутно запускает один скрипт на сервере
2. Скрипт проверяет по базе статус выполнения других скриптов, добавляет новые в базу
3. Те у которых например статус "ready_to_update" - запускаются на выполнение

Вот тут мне в голову ничего лучшего не приходит как использовать exec() (и по мануалу направлять в файл или другой поток) и консольной командой запускать один и тот же скрипт с разными параметрами (к примеру id пользователя). Так можно в принципе эмулировать многопоточность и применять этот класс независимо от фреймворка или проекта (вызов скрипта осуществляется по абсолютному пути, т.е. нет привязки к структуре проекта).

Сокеты использовать не хочется как-то, мануала много читать лень :D

Теперь вопрос в следующем. На vds я могу выполнять вызов скриптов через консоль именно посредством exec(), т.е. провайдеры разрешают самому настраивать подобные вещи? На шаредах насколько знаю отключают эти функции. Или на vds сейчас тоже этому противодействуют?
 
На VDS ты решаешь, что и как можно делать.
В твоём распоряжении вся система.
 
Сверху