Автор Тема: Неработещ cronjob. gconftool неработи с крон ? Какво греша ?  (Прочетена 4017 пъти)

staco

  • Напреднали
  • *****
  • Публикации: 72
  • Distribution: Ubuntu, Debian
  • Window Manager: Gnome
    • Профил
Здравейте на всички ! :)

Намерих си в нета едно кодче писано на питон за смяна на wallpaper-а. ОК, работи си.
Реших да го включа в cronjob, така че на всеки един час да се изпълнява и съответно да ми сменя тапета.

Но уви нещо не е наред.

създадох файл на име cronjobs в /home/stefan/Resources/ със съдържание: 0 * * * * /home/stefan/Resources/change-background.sh
В терминала написах: crontab -u stefan /home/stefan/Resources/cronjobs

Вече уж всичко трябва да е готово, но НЕ.
Код:
stefan@sng:~$ crontab -l
0 * * * * /home/stefan/Resources/change-background.sh

Потършувах в нета за синтаксиса на cronjob и намерих на различни места веднъж е написано: 0 * * * * , другаде: * 0 * * *
Пробвах и с двата начина, но пак никакъв резултат.

Скрипта, който ползвам е:
Код
GeSHi (Python):
  1. #!/usr/bin/python
  2. #
  3. # change-background.py
  4. #
  5. # A script to change to a random background image
  6. #
  7. # (c) 2004, Davyd Madeley <davyd@madeley.id.au>
  8. #
  9. #   This program is free software; you can redistribute it and/or modify
  10. #   it under the terms of the GNU General Public License as published by
  11. #   the Free Software Foundation; either version 2, or (at your option)
  12. #   any later version.
  13. #
  14. #   This program is distributed in the hope that it will be useful,
  15. #   but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17. #   GNU General Public License for more details.
  18. #
  19. #   You should have received a copy of the GNU General Public License
  20. #   along with this program; if not, write to the Free Software Foundation,
  21. #   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  22. #
  23.  
  24. backgrounds = "/home/stefan/Resources/Wallpapers"
  25.  
  26. import gconf
  27. import os
  28. import random
  29. import mimetypes
  30.  
  31. class GConfClient:
  32.        def __init__ (self):
  33.                self.__client__ = gconf.client_get_default ()
  34.        def get_background (self):
  35.                return self.__client__.get_string ("/desktop/gnome/background/picture_filename")
  36.        def set_background (self, background):
  37.                self.__client__.set_string ("/desktop/gnome/background/picture_filename", background)
  38.  
  39. client = GConfClient ()
  40.  
  41.  
  42. dir_items = os.listdir (os.path.join (os.environ["HOME"], backgrounds))
  43. items = []
  44.  
  45. for item in dir_items:
  46.        mimetype = mimetypes.guess_type (item)[0]
  47.        if mimetype and mimetype.split ('/')[0] == "image":
  48.                items.append (item)
  49.  
  50. item = random.randint (0, len (items) - 1)
  51. current_bg = client.get_background ()
  52.  
  53. while (items[item] == current_bg):
  54.        item = random.randint (0, len (items) - 1)
  55.  
  56. client.set_background (os.path.join (os.environ["HOME"], backgrounds, items[item]))

Иначе при
Код:
./change-background.sh
се сменя тапета на десктопа.

Благодаря предварително ! :)

« Последна редакция: Sep 26, 2009, 14:11 от staco »
Активен

gizi_

  • Напреднали
  • *****
  • Публикации: 521
  • Distribution: Debian/Lenny, SLES/9-11
  • Window Manager: Gnome 2.22.3
    • Профил
Re: Неработещ cronjob. Какво греша ?
« Отговор #1 -: Sep 24, 2009, 13:30 »
Първо се научи какво точно прави и как точно го прави cron.

Cron задачи можеш да изпълняваш на определен период от време:

Код:
M   S    T M W   Команда
5    *    * * *   /home/username/script/script1.sh > /dev/null

Този примерно ще се изпълнява на час и 5 минути скрипта. Погледни написал съм ти отгоре коя * за какво се отнася.
M - Минути
S - Час
T - Ден
M - Месец
W - Ден от седмицата (0-7 ти е неделя другите са ти от 0 до 7)

след това ако искаш да направиш cron задача да се изпълнява редовно, става по лесно с crontab -e и след това си нанасяш командата.

Надявам си да си разбрал какво точно имам предвид.
Активен

zulenica

  • Напреднали
  • *****
  • Публикации: 29
  • Distribution: CentOS
  • Window Manager: KDE
    • Профил
Re: Неработещ cronjob. Какво греша ?
« Отговор #2 -: Sep 24, 2009, 13:44 »
Защо не пробваш скрипта да го пуснеш през кронтаба на root потребителя, само за тест. Възможно е проблема да е в правата.
Активен

Когато човек се ражда, всички се радват, а той плаче. Човек трябва така да живее, че когато умре, всички да плачат, а той да се радва.

staco

  • Напреднали
  • *****
  • Публикации: 72
  • Distribution: Ubuntu, Debian
  • Window Manager: Gnome
    • Профил
Re: Неработещ cronjob. Какво греша ?
« Отговор #3 -: Sep 24, 2009, 19:15 »
не output-ва нищо като грешка.

вместо в dev/null го направих в хоум директорията.. е създава си файла през уреченото, но е празен, а тапета си е все същия.

Все още не разбирам какъв е проблема ?
Всичко си е както трябва..

промених и .sh на .py (при стартиране на ./imeto.py или /home/stefan/Resources/change-background.py се променя wallpaper-а, а с cronjob-а - не)

Първо се научи какво точно прави и как точно го прави cron.

Cron задачи можеш да изпълняваш на определен период от време:

Код:
M   S    T M W   Команда
5    *    * * *   /home/username/script/script1.sh > /dev/null

Този примерно ще се изпълнява на час и 5 минути скрипта. Погледни написал съм ти отгоре коя * за какво се отнася.
M - Минути
S - Час
T - Ден
M - Месец
W - Ден от седмицата (0-7 ти е неделя другите са ти от 0 до 7)

след това ако искаш да направиш cron задача да се изпълнява редовно, става по лесно с crontab -e и след това си нанасяш командата.

Надявам си да си разбрал какво точно имам предвид.

пп: това което ти си написал, не е ли за всеки 5 минути ?  ;)
« Последна редакция: Sep 24, 2009, 19:21 от staco »
Активен

Georgy

  • Напреднали
  • *****
  • Публикации: 208
    • Профил
Re: Неработещ cronjob. Какво греша ?
« Отговор #4 -: Sep 24, 2009, 20:19 »
Ти като си го написал с 0 какво очакваш да се случи? И през колко време?!
Трябва да имаш зададено време през което да се изпълнява, като най-малкия интеревал е 1мин

http://en.wikipedia.org/wiki/Cron
« Последна редакция: Sep 24, 2009, 20:21 от Georgy »
Активен

Помагам с каквото мога :)
<^><^><^><^><^><^><^><^><^>
Моята занимавка е Gentoooo :)

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: Неработещ cronjob. Какво греша ?
« Отговор #5 -: Sep 24, 2009, 21:28 »
Ти като си го написал с 0 какво очакваш да се случи? И през колко време?!
Трябва да имаш зададено време през което да се изпълнява, като най-малкия интеревал е 1мин

http://en.wikipedia.org/wiki/Cron
Така както е въведено ще прави точно това, което иска: ВСЕКИ ЧАС!!!
@staco, погледни в лога на крона какви грешки има. И си помисли дали да не пускаш програмата чрез шел скрипт в който първия ред да е:
. ~/.profile
Активен

0x2B|~0x2B

cofybreak

  • Напреднали
  • *****
  • Публикации: 37
    • Профил
Re: Неработещ cronjob. Какво греша ?
« Отговор #6 -: Sep 24, 2009, 22:04 »
А бе пичове, какво се чудите не мога да ви разбера. Той скрипта си бачка и си смена wallpaper-а. Ама на root  ;D
За да смени твоя, трябва да изглежда така:

0 * * * * stefan /home/stefan/Resources/change-background.sh >/dev/null 2>&1
Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: Неработещ cronjob. Какво греша ?
« Отговор #7 -: Sep 24, 2009, 22:17 »
А бе пичове, какво се чудите не мога да ви разбера. Той скрипта си бачка и си смена wallpaper-а. Ама на root  ;D
За да смени твоя, трябва да изглежда така:

0 * * * * stefan /home/stefan/Resources/change-background.sh >/dev/null 2>&1
От къде го измисли това? Я прочети man  страницата на cron!
Активен

0x2B|~0x2B

staco

  • Напреднали
  • *****
  • Публикации: 72
  • Distribution: Ubuntu, Debian
  • Window Manager: Gnome
    • Профил
Re: Неработещ cronjob. Какво греша ?
« Отговор #8 -: Sep 24, 2009, 22:20 »
А бе пичове, какво се чудите не мога да ви разбера. Той скрипта си бачка и си смена wallpaper-а. Ама на root  ;D
За да смени твоя, трябва да изглежда така:

0 * * * * stefan /home/stefan/Resources/change-background.sh >/dev/null 2>&1

Пробвах така както каза:

Цитат
stefan@sng:~/Resources$ crontab -l
15 22 * * * stefan /home/stefan/Resources/change-background.py >/dev/null 2>&1

=>

Цитат
Sep 24 22:15:01 sng /USR/SBIN/CRON[16630]: (stefan) CMD (stefan /home/stefan/Resources/change-background.py >/dev/null 2>&1 )

.. резултат - нулев :( В syslog-а няма грешки. Сега съм го направил на всяка минута да се изпълнява, може да е станало и случайност (да е избрал същия бекграунд. Ще си редактирам мнението след няколко минутки с резултата)

Цитат
И си помисли дали да не пускаш програмата чрез шел скрипт в който първия ред да е:
. ~/.profile
Кода на програмата съм го дал по-горе и го стартирам директно, без никакви допълнителни файлове.
« Последна редакция: Sep 24, 2009, 22:24 от staco »
Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: Неработещ cronjob. Какво греша ?
« Отговор #9 -: Sep 24, 2009, 22:25 »

Цитат
И си помисли дали да не пускаш програмата чрез шел скрипт в който първия ред да е:
. ~/.profile
Кода на програмата съм го дал по-горе и го стартирам директно, без никакви допълнителни файлове.
Хайде да осмислиш защо ти предлагам това и да си направиш труда да напишеш и пуснеш един триредов скрипт
« Последна редакция: Sep 24, 2009, 22:34 от romeo_ninov »
Активен

0x2B|~0x2B

staco

  • Напреднали
  • *****
  • Публикации: 72
  • Distribution: Ubuntu, Debian
  • Window Manager: Gnome
    • Профил
Re: Неработещ cronjob. Какво греша ?
« Отговор #10 -: Sep 24, 2009, 22:33 »

Цитат
И си помисли дали да не пускаш програмата чрез шел скрипт в който първия ред да е:
. ~/.profile
Кода на програмата съм го дал по-горе и го стартирам директно, без никакви допълнителни файлове.
Хайде да осмислиш защо ти предлагам това и да си направиш тръда да напишеш и пуснеш един триредов скрипт

О, извинявай.. не съм те разбрал.
Въпреки това, би ли казал точно как трябва да изглежда /ако не ставам много нахален/, защото не съм толкова в час ?
Все пак пиша в секцията за начинаещи  :-[

Благодаря
« Последна редакция: Sep 24, 2009, 22:37 от staco »
Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: Неработещ cronjob. Какво греша ?
« Отговор #11 -: Sep 24, 2009, 22:36 »
#!/bin/bash
. ~/.profile
/home/stefan/Resources/change-background.py

това се прави изпълним (за теб) файл и се слага в крона така (например)
0 * * * * /home/stefan/bin/run_scr.sh

П.П. това трябва да го стартираш от твоя крон. И погледни дали не си в забранителната листа за крон таба (не си спомням точно дали линукс имаше такова нещо)
« Последна редакция: Sep 24, 2009, 22:39 от romeo_ninov »
Активен

0x2B|~0x2B

staco

  • Напреднали
  • *****
  • Публикации: 72
  • Distribution: Ubuntu, Debian
  • Window Manager: Gnome
    • Профил
Re: Неработещ cronjob. Какво греша ?
« Отговор #12 -: Sep 24, 2009, 22:42 »
#!/bin/bash
. ~/.profile
/home/stefan/Resources/change-background.py

това се прави изпълним (за теб) файл и се слага в крона така (например)
0 * * * * /home/stefan/bin/run_scr.sh

П.П. това трябва да го стартираш от твоя крон. И погледни дали не си в забранителната листа за крон таба (не си спомням точно дали линукс имаше такова нещо)

Благодаря за помоща, НО:

Цитат
stefan@sng:~/Resources$ crontab -u stefan /home/stefan/Resources/cronjobs
stefan@sng:~/Resources$ crontab -l
40 22 * * * /home/stefan/Resources/run_chng_bgr.sh

Цитат
Sep 24 22:40:01 sng /USR/SBIN/CRON[17149]: (stefan) CMD (/home/stefan/Resources/run_chng_bgr.sh)

Два пъти пробвах (с различни минутки), но бекграунда продължава да си седи същия.  >:(

Редакция:
Странно, но:
Код:
stefan@sng:~/Resources$ ./run_chng_bgr.sh
bash: ./run_chng_bgr.sh: Permission denied

 ???
« Последна редакция: Sep 24, 2009, 22:44 от staco »
Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: Неработещ cronjob. Какво греша ?
« Отговор #13 -: Sep 24, 2009, 22:45 »
chmod 755 /home/stefan/Resources/run_chng_bgr.sh
и за всеки случай
chmod 755 /home/stefan/Resources/change-background.py
« Последна редакция: Sep 24, 2009, 22:48 от romeo_ninov »
Активен

0x2B|~0x2B

staco

  • Напреднали
  • *****
  • Публикации: 72
  • Distribution: Ubuntu, Debian
  • Window Manager: Gnome
    • Профил
Re: Неработещ cronjob. Какво греша ?
« Отговор #14 -: Sep 24, 2009, 22:49 »
chmod 755 /home/stefan/Resources/run_chng_bgr.sh

и така неще.. пфууу какъв е този зор  ???
Ти имаш ли възможност да тестваш също ?

Пробвах и с
Код:
48 22 * * * /home/stefan/Resources/run_chng_bgr.sh >/dev/null 2>&1

Но в syslog-а не излизат грешки.. просто съобщение, че се изпълнява cron-а (при всички варианти, които съм пробвал до сега)
Код:
Sep 24 22:48:01 sng /USR/SBIN/CRON[17334]: (stefan) CMD (/home/stefan/Resources/run_chng_bgr.sh >/dev/null 2>&1)

#редакция:
Ейсега ще chmod-на и другия скрипт и ще пробвам пак
« Последна редакция: Sep 24, 2009, 22:58 от staco »
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
svn update с cronjob
Настройка на програми
galileo 3 1448 Последна публикация Oct 24, 2009, 21:55
от morbid_viper
Помощ с Cronjob
Настройка на програми
niksdevil 7 952 Последна публикация Jan 07, 2013, 06:12
от romeo_ninov
cronjob всяка събота на нечетна седмица...
Настройка на програми
wfw 2 841 Последна публикация Jan 15, 2013, 14:38
от Йордан