Установка/удаление CRON-задания средствами PHP?

REMO

Guest
Установка/удаление CRON-задания средствами PHP?

Возможно средствами PHP установить/удалить CRON-задание?
 

Linker

Guest
REMO

Краеугольный камень проблемы - файл, в котором хранится список заданий для cron.

Либо ищите где этот файл (при условии, что доступ к нему у Вас есть), либо ищите возможность использования утилиты crontab.
Т.е. в первом случае Вы средствами php измените файл заданий (если Вы сами админ или есть доступ) либо запустив утилиту crontab, например через system().
 

Linker

Guest
REMO

Есть такая штука - at (это "ещё вариант")
добавляет разовые задания для cron, но конкретно ничего не знаю, ищите.

Похоже всё же можно через system() вызвать crontab так, чтобы он не редактор вызывал дефолтный, а копировал готовый файл, который предварительно нужно создать скриптом.

Вот здесь , есть пример, но только там из Perl вызывается, так что по аналогии.

P.S. Я так понимаю Вы далеко "не рут", возможно по этой причине вся затея может провалиться.
 

voodoo

Новичок
Автор оригинала: REMO
2Linker

А смысл запускать crontab через system, все равно он выкинет в текстовый редактор vi (или какой то еще).
чего бы?
man crontab

crontab [-u user] file

The first form of this command is used to install a new crontab from some named file
 

REMO

Guest
Автор оригинала: WOrel
Да опухли что ли все...
PHP:
while (!die)
{
system 'man crontab'
}
ну или шутки ради на ответ voodoo посмотреть _глазами_
И что это дает, да простят меня за непонятливость? Какой результат от команды 'man crontab'?
 

Blindman

Новичок
Автор оригинала: voodoo
crontab [-u user] file
-u разрешен только root'у (возможно и wheel, не уверен)

Если скрипт на сервере исполняется от имени пользователя для которого нужно изменит crontab , тогда примерно так:
PHP:
$fp=popen("crontab","w");
fputs ($fp,"0 0 * * * /path/to/script");
pclose($fp);
Если же скрипт исполняется как www или nobody - тогда как писал young, но "это не совсем то"
 

voodoo

Новичок
вопрос к тому, что -u в данном случае нафиг не нужен. рут тоже.
crontab filename

приведенный код совершенно про другое.
 

young

Новичок
Резюмируем:

Правильный способ решения проблемы
По всем вопросам -> man crontab

Альтернативное решение - использование at

Флейм в теме предлагаю прекратить
 
Сверху