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

razorg1991

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

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

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

Как это осуществить?
 

c0dex

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

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

AnrDaemon

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

razorg1991

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

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

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

Смотрел в Ларавел есть класс планировщик, уже думал в эту сторону, но жаль что его нельзя отдельно использовать, использую другой фреймворк.
 

c0dex

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

razorg1991

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

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@razorg1991, надеюсь, ты знаешь как запустить скрипт в несколько потоков и чтобы они не обрабатывали одинаковые данные

PS: готовых классов не знаю, писал свои обычно.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Ну это уж тебе виднее, но такая ситуация - вполне себе может случиться :D
 

razorg1991

Новичок
Ладно будем искать готовые решения или же писать свой велосипед ))) По крайней мере теперь хоть понимаю куда копать
 

AnrDaemon

Продвинутый новичок
Мне в данной ситуации, не обязательно все делать именно через cron. Я ищу способы реализации фонового режима выполнения скриптов.
Повесить ОДИН скрипт в крон, расписать его выполнение как тебе надо и больше не трогать.
У меня таки е скрипты годами работают. Потом открываешь планировщик и хорошо если там комментарии не забыл прописать.
А то можно весь вечер разбираться, что тот или иной скрипт делает.
И, да, сколько "много" данных? Сотни тысяч новых записей за раз?
 

AnrDaemon

Продвинутый новичок
Нет, я имел в виду именно сколько предполагается получать новых записей за один запрос.
Или так: С какой скоростью эти записи плодятся на источнике?
Если их там сотня в час появляется, то это объём ни о чём и можно в (x *) всё сразу обрабатывать.
 

razorg1991

Новичок
В общем поизучав некоторую информацию пришел к выводу, что проще написать свой велосипед, по типу планировщика в ларавел http://laravel.su/docs/5.0/artisan
Логика следующая:
1. Cron ежеминутно запускает один скрипт на сервере
2. Скрипт проверяет по базе статус выполнения других скриптов, добавляет новые в базу
3. Те у которых например статус "ready_to_update" - запускаются на выполнение

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

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

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

AnrDaemon

Продвинутый новичок
На VDS ты решаешь, что и как можно делать.
В твоём распоряжении вся система.
 
Сверху