1

Я пытался подружить cron и среду гном, увы не вышло совсем.

Мне необходимо что бы крон (прописанное задание в кронтабе) выполнялось в среде Gnome, как реализовать?

Задание такое, каждую пятницу необходимо запускать xdotool который работает в визуальном режиме (двигает курсор по экрану и выполняет свои задачи), так вот, скрипт xdotool (test.sh) который лежит в папке /home/admin/test/test.sh (права админа на все каталоги) необходимо что бы он запускался кроном каждую пятницу и выполнялся в визуальной среде.

Такое реализуемо?

2

А какие действия выполняет test.sh? Может, xdotool возможно заменить обычным shell-скриптом?

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

3 (14.11.2014 19:20:01 отредактировано stalker_tk)

Попробуйте запускать с записью в лог, может что информативное выскочит.
Пример

+ открыть спойлер
# Запуск синхронизации времени каждые 4 часа
0 */4    * * *    root    /usr/sbin/ntpdate-debian >> /var/log/ntpdate-debian.log 2>&1

Кстати скрипт сам по себе работает?

medwedos пишет:

скрипт xdotool (test.sh) который лежит в папке /home/admin/test/test.sh (права админа на все каталоги)

Что-то тут не то...

Hunter, who is on the trail ...

4 (15.11.2014 06:34:25 отредактировано drBatty)

medwedos пишет:

Задание такое, каждую пятницу необходимо запускать xdotool который работает в визуальном режиме (двигает курсор по экрану и выполняет свои задачи),

почитайте документацию к gnome-terminal, там есть  опция, которая запускает терминал  (чёрное окошечко), а в нём выполняет команду.

medwedos пишет:

права админа на все каталоги

посоветую  не создавать себе сложностей. Тогда их  не  нужно будет героически преодолевать. В 95% случаев такое кончается переустановкой вашего маздая.

medwedos пишет:

он запускался кроном каждую пятницу

 Консоль:
$ EDITOR=mcedit crontab -e

и там добавьте строчку

30 5 * * fri /path/command

(пустая строка в конце обязательна!)

Это на полшестого.

PS: и да, не забудьте в скрипте экспортировать $DISPLAY

export DISPLAY=":0.0"

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

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

5

yars пишет:

А какие действия выполняет test.sh? Может, xdotool возможно заменить обычным shell-скриптом?

Мне нужно получать с сайта файл, он генерируется по какому то алгоритму, через CURL мне не удалось побороть куки, видимо там совсем это запрещено, поэтому я решил курсором как человек логиниться и файл сохранять

stalker_tk пишет:

Кстати скрипт сам по себе работает?

Да я много раз его проверял в гноме.

drBatty пишет:

почитайте документацию к gnome-terminal, там есть  опция, которая запускает терминал  (чёрное окошечко), а в нём выполняет команду.

по моему оно автоматически запускается при выполнении чего то неожиданного через гном.
Я сейчас попробую как вы сказали.

6

medwedos пишет:

через CURL мне не удалось побороть куки

попробуйте wget,  там проще.

medwedos пишет:

по моему оно автоматически запускается при выполнении чего то неожиданного через гном.

вам  нужно запустить не из  gnome, а из crond. Т.е. что-бы демон запустил скрипт.  Но не просто скрипт, а скрипт в среде gnome. Потому вам нужно сначала запустить терминал(именно вам, а не наутилусу, в который вы мышкой тыкаете), а уже в этом  терминале(в окне)  запустить команду. Тогда она  выполнится "в гноме".

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

7

У меня есть вопрос еще, почему прописываю echo $display, а он выдает пустую строку? (это в консоле)
То-есть он не видит дисплей?

А если открыть гном, открыть там эмулятор консоли и ввести echo $display, он скажет что это DISPLAY 0:0

8 (17.11.2014 11:11:21 отредактировано medwedos)

Для логирования прописал в скрипт

echo "Начал выполняться скрипт" >> /usr/logs/ertest
тут скриптъ....
echo "Скрипт выполнен и остановлен">> /usr/logs/ertest

Верно?

9 (17.11.2014 12:22:52 отредактировано medwedos)

Не работает, скрипт выполняется и логи пишутся если запустить из гнома, если прописываю в кроне

10 12 * * fri /home/odmin/megacron/test.sh

то нет эффекта, он не срабатывает

export DISPLAY=":0.0"

прописан в скрипте

Вопрос с

medwedos пишет:

У меня есть вопрос еще, почему прописываю echo $display, а он выдает пустую строку? (это в консоле)
То-есть он не видит дисплей?
А если открыть гном, открыть там эмулятор консоли и ввести echo $display, он скажет что это DISPLAY 0:0

остается открытым.

10

medwedos пишет:

не срабатывает

я не понимаю, что это означают эти слова.

medwedos пишет:

У меня есть вопрос еще, почему прописываю echo $display, а он выдает пустую строку? (это в консоле)
То-есть он не видит дисплей?

кто "он"?  Приложения запущенные в этой консоли  очевидно  не будут иметь доступ к Xorg, т.к. $DISPLAY не определено. Если  $DISPLAY  определить,  то  возможно будут иметь  доступ. Это необходимое условие, но не достаточное.

Помешать может то, что вы работаете от  имени другого  пользователя
Или то,  что Xorg в  данный момент не работает.
Или  ещё   Over9000 причин.
Телепаты в  отпуске.

medwedos пишет:

Верно?

надо в  самом crontab прописать

>>/logpathpath/logname.log 2>&1

после  команды.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

11 (17.11.2014 14:01:27 отредактировано medwedos)

drBatty пишет:

Помешать может то, что вы работаете от  имени другого  пользователя

Работаю от админа

Если это важно, то на команду startx консоль реагирует так:

odmin@webback:~$ startx
-bash: startx: команда не найдена
У вас есть новая почта в /var/mail/odmin

Прописал файл для лога в крон и в скрипт, запустил. Скрипт не выполнился, в лог не чего не записалось.

Вообще такое чувство, что крон совсем отказывается работать, хоть как. Написал скрипт простой, который сохраняет в файл запись "Все работает", поставил в крон, он не выполнился в заданное время, вообще не чего не произошло.

Вот что находится в crontab -e
http://villinawiki.ru/screen1.png

12

medwedos пишет:

Работаю от админа

а иксы запущены  от  odmina'а?

medwedos пишет:

Если это важно, то на команду startx консоль реагирует так:

ну  значит вы Xorg не поставили, или как-то  криво поставили.  WM/DE  это тоже касается,  Xorg сам по себе не работает.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

13

medwedos пишет:

Вообще такое чувство, что крон совсем отказывается работать, хоть как. Написал скрипт простой, который сохраняет в файл запись "Все работает", поставил в крон, он не выполнился в заданное время, вообще не чего не произошло.

может  потому что  сегодня понедельник,  а не пятница?

medwedos пишет:

Задание такое, каждую пятницу

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

14 (17.11.2014 14:07:00 отредактировано medwedos)

drBatty пишет:

может  потому что  сегодня понедельник,  а не пятница?

Что то я пропустил)))
Поставил на 0/10 * * * * /home/.........

И еще мне теперь требуется поставить xorg, верно?

15

А вот что выдал xorg

root@webback:~# Xorg -configure

Fatal server error:
Server is already active for display 0
        If this server is no longer running, remove /tmp/.X0-lock
        and start again.


Please consult the The X.Org Foundation support
         at http://wiki.x.org
 for help.

16

medwedos пишет:

И еще мне теперь требуется поставить xorg, верно?

нет.

Xorg это графический  сервер,  без него Gnome не поставится.

Что в логе?

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

17 (17.11.2014 15:21:18 отредактировано medwedos)

drBatty пишет:

Что в логе?

Опять пустота..
Не работает

18

medwedos пишет:

Опять пустота..
Не работает

значит не запускается. Ищите ошибку.


Поставьте в кронтаб для проверки

* * * * * /path/command…

(каждую  минуту запуск).

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

19

drBatty пишет:
medwedos пишет:

Опять пустота..
Не работает

значит не запускается. Ищите ошибку.


Поставьте в кронтаб для проверки

* * * * * /path/command…

(каждую  минуту запуск).

Заработало, в кроне прописал * * * * * /home/odmin/proverka.sh >> тут логирование
Скрипт echo "Hello World"

И он выполняется, в логах есть записи Hello World

20

Так, кажется мне удалось его запустить.

Скрипт xdotool'a заработал в гноме, курсор ездит, логи пишутся.
Завтра возможно еще возникнут вопросы. Тему прошу не закрывать.

21

Все работает спасибо!