LinuxForum.Fans
Тема

Задания Crontab в Gnome

Автор: medwedos 21 сообщений 3449 просмотров
14.11.2014 16:48 #400836

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

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

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

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

14.11.2014 17:39 #400841

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

14.11.2014 19:18 · отредактировано #400857

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

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

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

"medwedos" написал:
скрипт xdotool (test.sh) который лежит в папке /home/admin/test/test.sh (права админа на все каталоги)
Что-то тут не то...
15.11.2014 06:31 · отредактировано #400917
"medwedos" написал:
Задание такое, каждую пятницу необходимо запускать xdotool который работает в визуальном режиме (двигает курсор по экрану и выполняет свои задачи),

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

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

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

[console]$ EDITOR=mcedit crontab -e[/console]
и там добавьте строчку

text
30 5 * * fri /path/command

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

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

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

text
export DISPLAY=":0.0"

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

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

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

"stalker_tk" написал:
Кстати скрипт сам по себе работает?

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

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

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

17.11.2014 09:53 #401232

"medwedos" написал:
через CURL мне не удалось побороть куки
попробуйте wget, там проще.

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

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

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

17.11.2014 11:02 · отредактировано #401236

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

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

Верно?

17.11.2014 12:22 · отредактировано #401244

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

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

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

text
export DISPLAY=":0.0"

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

Вопрос с

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

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

17.11.2014 13:34 #401257

"medwedos" написал:
не срабатывает
я не понимаю, что это означают эти слова.

"medwedos" написал:
У меня есть вопрос еще, почему прописываю echo $display, а он выдает пустую строку? (это в консоле)
То-есть он не видит дисплей?
кто "он"? Приложения запущенные в этой консоли очевидно не будут иметь доступ к Xorg, т.к. $DISPLAY не определено. Если $DISPLAY определить, то возможно будут иметь доступ. Это необходимое условие, но не достаточное.

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

"medwedos" написал:
Верно?
надо в самом crontab прописать
text
>>/logpathpath/logname.log 2>&1

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

17.11.2014 13:53 · отредактировано #401263
"drBatty" написал:
Помешать может то, что вы работаете от  имени другого  пользователя

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

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

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

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

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

Вот что находится в crontab -e

17.11.2014 13:58 #401265

"medwedos" написал:
Работаю от админа
а иксы запущены от odmina'а?

"medwedos" написал:
Если это важно, то на команду startx консоль реагирует так:
ну значит вы Xorg не поставили, или как-то криво поставили. WM/DE это тоже касается, Xorg сам по себе не работает.
17.11.2014 14:00 #401266
"medwedos" написал:
Вообще такое чувство, что крон совсем отказывается работать, хоть как. Написал скрипт простой, который сохраняет в файл запись "Все работает", поставил в крон, он не выполнился в заданное время, вообще не чего не произошло.
может потому что сегодня понедельник, а не пятница?
"medwedos" написал:
Задание такое, каждую пятницу
17.11.2014 14:06 · отредактировано #401269
"drBatty" написал:
может  потому что  сегодня понедельник,  а не пятница?

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

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

17.11.2014 14:21 #401274

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

text
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.

17.11.2014 14:33 #401279

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

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

Что в логе?
17.11.2014 14:59 · отредактировано #401294
"drBatty" написал:
Что в логе?

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

17.11.2014 15:38 #401305

"medwedos" написал:
Опять пустота..
Не работает
значит не запускается. Ищите ошибку.


Поставьте в кронтаб для проверки
text
* * * * * /path/command…

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

17.11.2014 17:09 #401340

drBatty написал:
[quote="medwedos"]Опять пустота..
Не работает
значит не запускается. Ищите ошибку.


Поставьте в кронтаб для проверки
text
* * * * * /path/command…

(каждую минуту запуск).[/quote]
Заработало, в кроне прописал * * * * * /home/odmin/proverka.sh >> тут логирование
Скрипт echo "Hello World"

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

17.11.2014 17:32 #401345

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

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

Войдите или зарегистрируйтесь, чтобы ответить.