Автор Тема: Cron Jobs  (Прочетена 3749 пъти)

SK0RP10N

  • Напреднали
  • *****
  • Публикации: 216
  • Distribution: Slackware
  • Window Manager: GNOME
    • Профил
    • WWW
Cron Jobs
« -: Dec 12, 2008, 00:42 »
Здравейте :)
Как мога през web форма да добавям cron jobs ?
Благодаря много ;)
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Cron Jobs
« Отговор #1 -: Dec 12, 2008, 01:00 »
За точния синтаксис, зависи от езика, който искаш да използваш (спомени го). Относно алгоритъма, имаш два варианта според нужните права, от които се нуждаят задачите, които ще се изпълняват от cron:
1. на задачите не са нужни root права - поставяш потребителя, с който работи web сървърът, в групата на потребителя, чийто crontab ще се използва за задачите или добавяш crontab за потребителя, с който работи web сървърът (ако има нужните права за изпълнението на задачите). Задаваш права на съответния файл /var/spool/cron/crontabs/user и го редактираш чрез инструментите за редактиране на файл на съответния език;
2. на задачите са нужни root права - същото като в т.1, но тогава трябва да дадеш някакво позволение на скрипта да действа като root. Например, чрез добавяне на потребителя в /etc/sudoers с нужните права за изпълнение на дадените задачи посредством sudo без парола. Или добави потребителя към root групата и задай нужните права на файла /var/spool/cron/crontabs/root. Или смени групата на файла /var/spool/cron/crontabs/root... Методи бол и никой от тях не е за препоръчване. Гледай задачите, които ще слагаш в cron-а да не изискват root права ;)
« Последна редакция: Dec 12, 2008, 01:07 от neter »
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

SK0RP10N

  • Напреднали
  • *****
  • Публикации: 216
  • Distribution: Slackware
  • Window Manager: GNOME
    • Профил
    • WWW
Re: Cron Jobs
« Отговор #2 -: Dec 12, 2008, 10:18 »
То добре, обаче в /var/spool/cron/crontabs
няма нищо, нито папки, нито файлове
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Cron Jobs
« Отговор #3 -: Dec 12, 2008, 10:33 »
Пак не спомена езика, който ще използваш. Относно липсващите файлове, може да не са във /var/spool/cron/crontabs, а да са във /var/spool/cron, а може и все още да не са създадени, тъй като все още не си изпълнявал командата "crontab -e" за дадения потребител. Изпълни командата "crontab -e" като root или като някой друг потребител, впиши вътре някаква задача, запази и виж дали се е създал съответният файл в някоя от горепосочените папки. Ако няма създаден файл там, а виждаш вписаната задача, когато изпълниш отново "crontab -e" или "crontab -l", тогава намери къде се намира този файл с команда (под root, независимо cron-а на кой потребител се търси)
Код
GeSHi (Bash):
  1. grep -r "някакъв текст от вписаната задача" /
Това накрая е просто наклонена черта, т.е., указваме търсене из цялата система. За текст впиши нещо от съдържанието, което си написал в crontab-а. Пример
Код
GeSHi (Bash):
  1. grep -r "5 5 * * *" /
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

SK0RP10N

  • Напреднали
  • *****
  • Публикации: 216
  • Distribution: Slackware
  • Window Manager: GNOME
    • Профил
    • WWW
Re: Cron Jobs
« Отговор #4 -: Dec 13, 2008, 11:28 »
Добре, обаче нещо не можах да направя на php код да променя съдържанието на crontabs на моя user...
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Cron Jobs
« Отговор #5 -: Dec 13, 2008, 12:42 »
Как ще бъде структуриран кодът, зависи много от това по какъв точно начин искаш да редактираш cron файла. Ето един прост пример, при който отваряме cron файла в текстово поле, редактираме го като обикновен текст и го запазваме:
Код
GeSHi (PHP):
  1. <?php
  2.  
  3. $file = '/var/spool/cron/crontabs/user';
  4.  
  5. if($_POST['save']) {
  6.    $f = fopen($file, 'w');
  7.    fwrite($f, $_POST['save']);
  8.    fclose($f);
  9. }
  10.  
  11. echo '<form action="" method="post"><textarea name="save" cols=100 rows=20>';
  12. include($file);
  13. echo '</textarea><p><input type="submit" value="Запиши"><input type="reset"></form>';
  14.  
  15. ?>
Ако получиш грешка относно права, то погледни какви права има cron файлът (трябва потребителят на apache да може да чете и пише в него) и какви права има папката, в която се намира cron файлът (трябва потребителят на apache да може да чете, пише и изпълнява в тази папка) ;)
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

SK0RP10N

  • Напреднали
  • *****
  • Публикации: 216
  • Distribution: Slackware
  • Window Manager: GNOME
    • Профил
    • WWW
Re: Cron Jobs
« Отговор #6 -: Dec 13, 2008, 17:27 »
Еее, жив и здрав да си :)
Стана, най-сетне ;)
Имам да те черпя една каса бира :)
Благодаря много
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
cron
Настройка на програми
sunhater 2 2613 Последна публикация Nov 02, 2003, 21:27
от sunhater
Steve jobs - джедай по душа
Живота, вселената и някакви други глупости
Kalin 0 1515 Последна публикация Jan 17, 2008, 00:53
от Kalin
Gates vs Jobs
Хумор
Златко 1 2335 Последна публикация Nov 12, 2010, 00:29
от vyrgozunqk
Настройка на Cron Jobs?
Настройка на програми
heminei 16 4476 Последна публикация Dec 31, 2010, 17:57
от romeo_ninov
R.I.P Steve Jobs
Живота, вселената и някакви други глупости
b2l 12 3377 Последна публикация Oct 06, 2011, 22:40
от gat3way