Титла: Неработещ cronjob. gconftool неработи с крон ? Какво греша ? Публикувано от: staco в Sep 24, 2009, 12:44 Здравейте на всички ! :)
Намерих си в нета едно кодче писано на питон за смяна на wallpaper-а. ОК, работи си. Реших да го включа в cronjob, така че на всеки един час да се изпълнява и съответно да ми сменя тапета. Но уви нещо не е наред. създадох файл на име cronjobs в /home/stefan/Resources/ със съдържание: 0 * * * * /home/stefan/Resources/change-background.sh В терминала написах: crontab -u stefan /home/stefan/Resources/cronjobs Вече уж всичко трябва да е готово, но НЕ. Код: stefan@sng:~$ crontab -l Потършувах в нета за синтаксиса на cronjob и намерих на различни места веднъж е написано: 0 * * * * , другаде: * 0 * * * Пробвах и с двата начина, но пак никакъв резултат. Скрипта, който ползвам е: Код
Иначе при Код: ./change-background.sh Благодаря предварително ! :) Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: gizi_ в Sep 24, 2009, 13:30 Първо се научи какво точно прави и как точно го прави cron.
Cron задачи можеш да изпълняваш на определен период от време: Код: M S T M W Команда Този примерно ще се изпълнява на час и 5 минути скрипта. Погледни написал съм ти отгоре коя * за какво се отнася. M - Минути S - Час T - Ден M - Месец W - Ден от седмицата (0-7 ти е неделя другите са ти от 0 до 7) след това ако искаш да направиш cron задача да се изпълнява редовно, става по лесно с crontab -e и след това си нанасяш командата. Надявам си да си разбрал какво точно имам предвид. Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: zulenica в Sep 24, 2009, 13:44 Защо не пробваш скрипта да го пуснеш през кронтаба на root потребителя, само за тест. Възможно е проблема да е в правата.
Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: staco в Sep 24, 2009, 19:15 не output-ва нищо като грешка.
вместо в dev/null го направих в хоум директорията.. е създава си файла през уреченото, но е празен, а тапета си е все същия. Все още не разбирам какъв е проблема ? Всичко си е както трябва.. промених и .sh на .py (при стартиране на ./imeto.py или /home/stefan/Resources/change-background.py се променя wallpaper-а, а с cronjob-а - не) Първо се научи какво точно прави и как точно го прави cron. пп: това което ти си написал, не е ли за всеки 5 минути ? ;) Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: Georgy в Sep 24, 2009, 20:19 Ти като си го написал с 0 какво очакваш да се случи? И през колко време?!
Трябва да имаш зададено време през което да се изпълнява, като най-малкия интеревал е 1мин http://en.wikipedia.org/wiki/Cron Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: romeo_ninov в Sep 24, 2009, 21:28 Ти като си го написал с 0 какво очакваш да се случи? И през колко време?!Така както е въведено ще прави точно това, което иска: ВСЕКИ ЧАС!!! @staco, погледни в лога на крона какви грешки има. И си помисли дали да не пускаш програмата чрез шел скрипт в който първия ред да е: . ~/.profile Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: cofybreak в Sep 24, 2009, 22:04 А бе пичове, какво се чудите не мога да ви разбера. Той скрипта си бачка и си смена wallpaper-а. Ама на root ;D
За да смени твоя, трябва да изглежда така: 0 * * * * stefan /home/stefan/Resources/change-background.sh >/dev/null 2>&1 Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: romeo_ninov в Sep 24, 2009, 22:17 А бе пичове, какво се чудите не мога да ви разбера. Той скрипта си бачка и си смена wallpaper-а. Ама на root ;DОт къде го измисли това? Я прочети man страницата на cron! Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: staco в Sep 24, 2009, 22:20 А бе пичове, какво се чудите не мога да ви разбера. Той скрипта си бачка и си смена wallpaper-а. Ама на root ;D Пробвах така както каза: Цитат stefan@sng:~/Resources$ crontab -l => Цитат Sep 24 22:15:01 sng /USR/SBIN/CRON[16630]: (stefan) CMD (stefan /home/stefan/Resources/change-background.py >/dev/null 2>&1 ) .. резултат - нулев :( В syslog-а няма грешки. Сега съм го направил на всяка минута да се изпълнява, може да е станало и случайност (да е избрал същия бекграунд. Ще си редактирам мнението след няколко минутки с резултата) Цитат И си помисли дали да не пускаш програмата чрез шел скрипт в който първия ред да е:Кода на програмата съм го дал по-горе и го стартирам директно, без никакви допълнителни файлове. Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: romeo_ninov в Sep 24, 2009, 22:25 Хайде да осмислиш защо ти предлагам това и да си направиш труда да напишеш и пуснеш един триредов скрипт Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: staco в Sep 24, 2009, 22:33 Хайде да осмислиш защо ти предлагам това и да си направиш тръда да напишеш и пуснеш един триредов скрипт О, извинявай.. не съм те разбрал. Въпреки това, би ли казал точно как трябва да изглежда /ако не ставам много нахален/, защото не съм толкова в час ? Все пак пиша в секцията за начинаещи :-[ Благодаря Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: romeo_ninov в Sep 24, 2009, 22:36 #!/bin/bash
. ~/.profile /home/stefan/Resources/change-background.py това се прави изпълним (за теб) файл и се слага в крона така (например) 0 * * * * /home/stefan/bin/run_scr.sh П.П. това трябва да го стартираш от твоя крон. И погледни дали не си в забранителната листа за крон таба (не си спомням точно дали линукс имаше такова нещо) Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: staco в Sep 24, 2009, 22:42 #!/bin/bash Благодаря за помоща, НО: Цитат stefan@sng:~/Resources$ crontab -u stefan /home/stefan/Resources/cronjobs Цитат 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 ??? Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: romeo_ninov в Sep 24, 2009, 22:45 chmod 755 /home/stefan/Resources/run_chng_bgr.sh
и за всеки случай chmod 755 /home/stefan/Resources/change-background.py Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: staco в 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-на и другия скрипт и ще пробвам пак Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: romeo_ninov в Sep 24, 2009, 22:52 Махни редиректването на STDIN и STDERR и погледни в лога на крона, не системния
Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: gat3way в Sep 24, 2009, 22:52 0 * * * * cd /home/stefan/Resources/;./change-background.sh >/dev/null 2>&1
такам... Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: romeo_ninov в Sep 24, 2009, 22:57 0 * * * * cd /home/stefan/Resources/;./change-background.sh >/dev/null 2>&1по-добре да е така: 0 * * * * /home/stefan/Resources/change-background.sh Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: staco в Sep 24, 2009, 23:01 Добре, така или не така, ето какво направих в последствие, защото отново не се получи :(
пп: .sh-то съм си го променил на .py не съм го пропуснал Код: Sep 24 22:52:01 sng /USR/SBIN/CRON[17504]: (stefan) CMD (/home/stefan/Resources/run_chng_bgr.sh >/home/stefan/Desktop/balbla.txt 2>&1) balba.txt: Цитат Traceback (most recent call last): интересна работа. като го стартирам (който и да е било от двата скрипта) се сменя без проблеми, а така неще Код: stefan@sng:~/Resources$ ./change-background.py > /home/stefan/Desktop/xaxa.txt Явно ще трябва да потърся някой друг скрипт, че с този май няма да я бъде. #Редакция: Във /var/log/ нямам никакви файлове или директории свързани с cron. Единствено ми изписва в syslog-а какво става Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: romeo_ninov в Sep 24, 2009, 23:05 Според мен трябва да промениш тази директория в скрипта:
/desktop/gnome/background/picture_filename защото в този вид мисля че не съществува или слижи силом променливата HOME в шел скрита (като втори ред) export HOME=/home/stefan Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: staco в Sep 24, 2009, 23:13 Според мен трябва да промениш тази директория в скрипта: Код: File "/home/stefan/Resources/change-background.py", line 2 Докато търсих скрипт за смяна на тапета видях във всички пътя: /desktop/gnome/background/picture_filename и отделно специална (като в случая) променлива, която трябва да се редактира без да се пипа друго. Не ползвам тях, защото бяха с фиксирани имена на тапети за определени часове. Както и да е, промених го, стартирах ръчно скрипта, но не сме смени бекграунда. Върнах го по старо му и се смени. Но проблема с cron-а остава.. за жалост. А output-а /до преди да добавя export Home ../ продължава да си е: Код: Traceback (most recent call last): Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: laskov в Sep 24, 2009, 23:15 Във /var/log/ нямам никакви файлове или директории свързани с cron. Единствено ми изписва в syslog-а какво става1. Ако на края на реда няма ">/dev/null 2>&1" , то crond ще праща е-mail на потребителя с текста на грешки, ако има такива или изход от изпълнената команда, ако има такъв. Провери пощата на потребителя stefan и на root. 2. Сложи нещо в скрипта, напр. touch някакъв_файл и проверявай часа на модификация на файла някакъв_файл, за да видиш дали скрипта се изпълнява. Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: romeo_ninov в Sep 24, 2009, 23:16 staco, втория ред на шел скрипта :)
Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: staco в Sep 24, 2009, 23:21 staco, втория ред на шел скрипта :) опс, моя грешка. Нооо резултата пак е същия.. тоест никаква промяна. Код: Sep 24 23:19:01 sng /USR/SBIN/CRON[18069]: (stefan) CMD (/home/stefan/Resources/run_chng_bgr.sh >/home/stefan/Desktop/result.txt 2>&1) result.txt - Същата грешка като горната. @laskov щом в уречения час се създава output файл, значи скрипта се изпълнява.. безспорно е. Някой би ли пробвал кода и на своята машинка ? И пак повтарям.. при директно стартиране на скрипта - тапета се сменя, а с cron - НЕ.. но задачата се изпълнява.. появата на изходен файл е доказателство за това. ПС: Графичната среда ми е Gnome, а дистрибуцията ubuntu v9.04 С Код: gconftool -t string -s /desktop/gnome/background/picture_filename ПЪЛЕН_ПЪТ_ДО_ФАЙЛА_ЗА_ТАПЕТ Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: romeo_ninov в Sep 24, 2009, 23:27 Опитай да добавиш и този ред в шел скрипта:
. ~/.bash_profile Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: staco в Sep 24, 2009, 23:32 Опитай да добавиш и този ред в шел скрипта: result.txt Цитат /home/stefan/Resources/run_chng_bgr.sh: line 4: /home/stefan/.bash_profile: No such file or directory sh скрипта: Код: #!/bin/bash Предлагам да не се занимаваме повече с тоя скрипт, че отиде тя.. Както казах с gconftool -t string -s /desktop/gnome/background/picture_filename ПЪЛЕН_ПЪТ_ДО_ФАЙЛА_ЗА_ТАПЕТ се сменя тапета. Трябва ми само малко помощ за избирането на произволно име от списък или сканирането на директорията с файловете и това е. Утре ще се помъча сам да се справя с пренаписването на скрипта, но ще се радвам и ако някой удари едно-друго рамо :) Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: staco в Sep 25, 2009, 19:48 Чудна работа, сглобих нещичко, което работи при директно стартиране, но отново с cron - издава багажа ;D ;D
Пробвах същите неща, които ме посъветвахте, нооооо пак нищо.. задачата се стартира, output файл се създава (празен и то) ама тапета си седи същия :D Скрипта ми е: Код
Някакви идеи да имате ? >:( Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: romeo_ninov в Sep 25, 2009, 21:51 Сложи пълни пътища към програмите, които стартираш, обкръжението на крон е доста по-ограничено от това на шел
П.П. добави като втори ред в скрипта set -x И погледни пак логовете Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: staco в Sep 26, 2009, 01:34 Сложи пълни пътища към програмите, които стартираш, обкръжението на крон е доста по-ограничено от това на шел Навсякъде ползвам пълни пътища, точно заради това.. но неще и неще да потръгне. Дори пробвах с крон да стартирам самата команда за смяна на тапета.. и така не проработи.. какъв е проблема .. неразбирам .. Код: 32 1 * * * /home/stefan/Resources/scripts/change_background.sh > /home/stefan/Desktop/result.txt 2>&1 result.txt Цитат + dir=/home/stefan/Resources/Wallpapers Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: romeo_ninov в Sep 26, 2009, 08:18 За мен изглежда проблема да е в командата gconftool. Прегледай й сорса и виж дали няма нещо, което да е смущаващо за да не иска да работи в крон
Титла: Re: Неработещ cronjob. Какво греша ? Публикувано от: neter в Sep 26, 2009, 08:44 Навсякъде ползвам пълни пътищаНе е вярно :) romeo_ninov правилно те упъти в предния пост. Последният ред от твоя скрипт е Код а трябва да бъде например Код Пътят /usr/bin/ е примерен. Виж къде точно е твоят gconftool с команда Код
Титла: Re: Неработещ cronjob. gconftool неработи с крон ? Какво греша ? Публикувано от: staco в Sep 26, 2009, 17:16 Оох.. не съм забелязал .. но и така не става.
Пробвах и крон, който да стартира: Код
и познайте.. firefox-а не се пусна :D само извести в лога че задачата бе изпълнена и оповести празно output файлче следователно проблема не е в "gconftool" Някакви други идеи да имате ? >:( Титла: Re: Неработещ cronjob. gconftool неработи с крон ? Какво греша ? Публикувано от: romeo_ninov в Sep 26, 2009, 19:51 Оох.. не съм забелязал .. но и така не става.1. между удивителната и слаша на първия ред НЯМА празно място. 2. И как очакваш графична програма да се стартира като няма DISPLAY на който да се визуализира. Възможно е това да е и проблема с тази гномска програма Титла: Re: Неработещ cronjob. gconftool неработи с крон ? Какво греша ? Публикувано от: staco в Sep 26, 2009, 20:05 Оох.. не съм забелязал .. но и така не става.1. между удивителната и слаша на първия ред НЯМА празно място. Добре, махнах разстоянието, но пак е същото.. не връща грешки.. нищо.. иначе при стартиране на скрипта всичко си работи. Има нещо около cron-а, ама какво.. относно gconftool не е графична програма. С туулчето можеш да променяш разни настройки директно от терминала. (http://linux.die.net/man/1/gconftool-2) Сега ще си пусна филмче, че съм много уморен.. утре ще го мъча още >:D Титла: Re: Неработещ cronjob. gconftool неработи с крон ? Какво греша ? Публикувано от: romeo_ninov в Sep 26, 2009, 20:22 xlsfonts също не е графична програма, но прави връзка към Х за да изтегли списъка с шрифтовете. Аналогично с xhost. И никоя от тях не работи ако няма пуснат X т.е. според мен няма да работят и в крона
|