Форум русскоязычного сообщества Ubuntu


Автор Тема: не работает скрипт в cron  (Прочитано 1683 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Volodyuka

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
не работает скрипт в cron
« : 13 Декабрь 2009, 15:12:32 »
Написал я недавно себе скриптик, так ради баловства и изучения скриптописания, который сменяет фон рабочего стола на рандомно выбранный из определённой папки, ну и собственно, озадачился тем, чтобы как-то автоматизировать его работу и тут мне осенила голову гениальная идея.
Все вероятно видели Windows 7, со всеми её аэро эффектами и сменой фонов рабочего стола через определённые промежутки времени, так вот, я, как человек давно проникнувшийся идеей open source и GNU, и откровенно недолюбливаюший Windows решил, что чем Ubuntu хуже, нужно сделать смену фонов рабочих столов. Итак я узнал про cron. Переместил скриптик в директорию /etc/cron.hourly, сделал скриптик исполняемым командой chmod +x и стал ждать. Однако, не через час, не через два, не через пять смены фона рабочего стола не произошло, поэтому, я решил спросить здесь совета, может я что упустил, или неправильно сделал.

код скрипта:
#!/bin/bash
export DIR='/home/volodyuka/pictures/'
export NUMBER=$RANDOM
export TOTAL=0
for f in `ls $DIR`
do
let "TOTAL += 1"
done
let "NUMBER %= TOTAL"
export CURRENT=0
for f in `ls $DIR`
do
if [ $CURRENT = $NUMBER ]
then
/usr/bin/gconftool-2 -t string -s /desktop/gnome/background/picture_filename $DIR/$f
break
fi
let "CURRENT += 1"
done

код crontab:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
« Последнее редактирование: 13 Декабрь 2009, 15:14:54 от Volodyuka »

Оффлайн vasilisc

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2563
  • г.Северодвинск - строим АПЛ
    • Просмотр профиля
    • Авторские статьи об OpenSource
Re: не работает скрипт в cron
« Ответ #1 : 13 Декабрь 2009, 15:20:22 »
вы юзаете /etc/cron.hourly  который вызывается из под рута
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourlyи картинка кладется на Рабочий Стол рута а не вас!
вам нужно не так!

удалите из /etc/cron.hourly
и пропишите в /etc/crontab
*/5 *    * * *   volodyuka    /путь/к/скрипту

в пределах 5 мин  программа заработает и потом время урегулируете сами
Ускорение http://vasilisc.com/speedup_ubuntu
Железо http://vasilisc.com/hcl/detect.php
Призёр http://vasilisc.com/ubuntu_woman Если помог, то поддержите WM R259039388254

Оффлайн Volodyuka

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
Re: не работает скрипт в cron
« Ответ #2 : 13 Декабрь 2009, 17:37:04 »
не помогло, нашёл способ записи конкретно для пользователя crontab -e, создаёт файл crontab для текущей учётной записи и хранит его в /var/spool/cron/ под названием учётной записи. в него записал:
01,03,16,31,46 *   * * *  /home/volodyuka/scripname
всё равно не работает, ни на 1ой, ни на 3ей минуте изменений не произошло.

Оффлайн truegeek

  • FPGA Designer
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4214
  • аЦкий схемотехник
    • Просмотр профиля
Re: не работает скрипт в cron
« Ответ #3 : 13 Декабрь 2009, 18:09:01 »
на форуме много подобных тем... поищите пожалуйста...

Оффлайн Volodyuka

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
Re: не работает скрипт в cron
« Ответ #4 : 13 Декабрь 2009, 18:22:56 »
на форуме много подобных тем... поищите пожалуйста...
не, я конечно понимаю, что можно и поискать, но нету прорвы времени на то, чтобы перелопатить 182 темы.
я просто прошу помощи, ибо уже совершенно не могу предположить что не работает.
сам скрипт рабочий - это факт. cron запущен. необходимые файлы есть.

Оффлайн vasilisc

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2563
  • г.Северодвинск - строим АПЛ
    • Просмотр профиля
    • Авторские статьи об OpenSource
Re: не работает скрипт в cron
« Ответ #5 : 13 Декабрь 2009, 18:56:59 »
не помогло, нашёл способ записи конкретно для пользователя crontab -e, создаёт файл crontab для текущей учётной записи и хранит его в /var/spool/cron/ под названием учётной записи. в него записал:
01,03,16,31,46 *   * * *  /home/volodyuka/scripname
всё равно не работает, ни на 1ой, ни на 3ей минуте изменений не произошло.
а ручками если скрипт запустить, то скрипт отрабатывает?
вставьте временно после каждой строки типа  echo Этап N >> /tmp/debuggg.txtи вместо N число от 1 и далее
посмотрите как отрабатывает скрипт и поймете какая из строк не работает
завтра утром точно помогу - попробую ваш скрипт отработать у меня, счас я не дома
Ускорение http://vasilisc.com/speedup_ubuntu
Железо http://vasilisc.com/hcl/detect.php
Призёр http://vasilisc.com/ubuntu_woman Если помог, то поддержите WM R259039388254

Оффлайн Volodyuka

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
Re: не работает скрипт в cron
« Ответ #6 : 13 Декабрь 2009, 19:01:16 »
а ручками если скрипт запустить, то скрипт отрабатывает?
вставьте временно после каждой строки типа  echo Этап N >> /tmp/debuggg.txtи вместо N число от 1 и далее
посмотрите как отрабатывает скрипт и поймете какая из строк не работает
завтра утром точно помогу - попробую ваш скрипт отработать у меня, счас я не дома
да, на команду ./scriptname происходит смена фона.
« Последнее редактирование: 13 Декабрь 2009, 19:13:06 от Volodyuka »

Оффлайн truegeek

  • FPGA Designer
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4214
  • аЦкий схемотехник
    • Просмотр профиля
Re: не работает скрипт в cron
« Ответ #7 : 13 Декабрь 2009, 19:59:10 »
а выложите содержимое crontab

Оффлайн Volodyuka

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
Re: не работает скрипт в cron
« Ответ #8 : 13 Декабрь 2009, 20:06:28 »
собсно вот

/var/spool/cron/crontabs/volodyuka
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.pntj8G/crontab installed on Sun Dec 13 19:03:26 2009)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
# m h  dom mon dow   command
01,03,16,31,46 *   * * *  /home/volodyuka/change_wp

Оффлайн truegeek

  • FPGA Designer
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4214
  • аЦкий схемотехник
    • Просмотр профиля
Re: не работает скрипт в cron
« Ответ #9 : 13 Декабрь 2009, 20:11:03 »
вот Василий правильно вам советовал...
/etc/crontab
добавьте строку
*/5 *    * * *   volodyuka  bash /путь/к/скрипту
не забудьте в конце
#

Оффлайн Volodyuka

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
Re: не работает скрипт в cron
« Ответ #10 : 13 Декабрь 2009, 20:32:37 »
кхм... вообще-то я уже ответил, что это не помогло.
не помогло, нашёл способ записи конкретно для пользователя crontab -e, создаёт файл crontab для текущей учётной записи и хранит его в /var/spool/cron/ под названием учётной записи. в него записал:
01,03,16,31,46 *   * * *  /home/volodyuka/scripname
всё равно не работает, ни на 1ой, ни на 3ей минуте изменений не произошло.
да и переписал я его уже, вставил bash и закрывающий # изменений 0.
« Последнее редактирование: 13 Декабрь 2009, 20:34:20 от Volodyuka »

Оффлайн truegeek

  • FPGA Designer
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4214
  • аЦкий схемотехник
    • Просмотр профиля
Re: не работает скрипт в cron
« Ответ #11 : 13 Декабрь 2009, 20:36:42 »
а демон крона запущен вообще?

ps augx|grep cron

Оффлайн Volodyuka

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
Re: не работает скрипт в cron
« Ответ #12 : 13 Декабрь 2009, 20:49:58 »
Цитировать
ps augx|grep cron
root      2869  0.0  0.0   3480  1040 ?        Ss   17:51   0:00 /usr/sbin/cron
1000      9062  0.0  0.0   3360   816 pts/1    R+   20:48   0:00 grep cron


volodyuka@volodyuka-desktop:~$ /etc/init.d/cron status
 * cron is running

Оффлайн truegeek

  • FPGA Designer
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4214
  • аЦкий схемотехник
    • Просмотр профиля
Re: не работает скрипт в cron
« Ответ #13 : 13 Декабрь 2009, 20:55:38 »
все, что я могу еще посоветовать это привести /etc/crontab к такому виду
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

01,03,16,31,46 *   * * * volodyuka bash /home/volodyuka/scripname
#

просто скопипастите и попробуйте... чтоб я успокоился, что не смог ничем помочь ))))

Оффлайн Volodyuka

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
Re: не работает скрипт в cron
« Ответ #14 : 13 Декабрь 2009, 21:04:38 »
ну никаких изменений)

Пользователь решил продолжить мысль 13 Декабрь 2009, 19:06:51:
у меня у самого две мысли, или демон, сцуко, ленивый, или в скрипте проблема) хотя скрипт работает на ура, да и демон свои обязанности судя по логам исполняет тоже все, кроме скрипта. причём он не хочет делать ни команд из основного кронтаба, так и из таба моей учётной записи.

Пользователь решил продолжить мысль 13 Декабрь 2009, 21:10:10:
тааак, добавил в таб учётной записи строку echo Этап N >> /tmp/debuggg.txt в файл дебагга записывается, что этап N происходит, а вот фон менятся не желает... странно...
« Последнее редактирование: 13 Декабрь 2009, 21:10:10 от Volodyuka »

 

Страница сгенерирована за 0.058 секунд. Запросов: 22.