Автор Тема: Вопросы по cron и anacron  (Прочитано 6226 раз)

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

Оффлайн ek-nfn

  • Местный
  • *****
  • Автор темы
  • Сообщений: 1422
Вопросы по cron и anacron
« : Июнь 20, 2014, 21:12:27 »
Запутался при освоении, куча вопросов, на которые не нашел однозначных ответов.

1) нужно ли создавать файл заданий в домашней папке ?
2) нужно ли разрешение для пользователя при использовании этих утилит  ?
3) при запуске ~$ crontab -e  запускается редактор sensible-editor с выводом цифры 27 и непонятно что вводить. Пробовал ввести простейшую строку задания типа такой 0-59 * * * * echo "Выполняется", но в ответ знак вопроса. Можно ли поменять  редактор на свой?
4) как редактировать файл заданий для anacron ? Есть ли у нее команда аналогичная crontab ?
5) Нужно ли эти утилиты прописывать в автозапуск ? И с какими параметрами ?
6) Критерий выбора интерпретатора? По умолчанию стоит SHELL=/bin/sh, хотя в разных описаниях встречаю SHELL=/bin/bash

ОС  Рунту-xfce 12.04

« Последнее редактирование: Июнь 21, 2014, 17:21:07 от ek-nfn »
Devuan ASCII x32..x64

Оффлайн HsH

  • Administrator
  • *****
  • Сообщений: 3474
Re: Вопросы по cron и anacron
« Ответ #1 : Июнь 23, 2014, 12:12:26 »
1) нужно ли создавать файл заданий в домашней папке ?
    Нет, задания хранятся в каталогах /var/spool/cron|anacron/ и имеют имя пользователя.

2) нужно ли разрешение для пользователя при использовании этих утилит  ?
    Нет, должно работать с правами текущего пользователя.

Можно ли поменять  редактор на свой?
    Запустите команду
select-editor
4) как редактировать файл заданий для anacron ? Есть ли у нее команда аналогичная crontab ?
   Редактировать можно обычным текстовым редактором.

5) Нужно ли эти утилиты прописывать в автозапуск ?
   Нет, это системные сервисы.

6) Критерий выбора интерпретатора? По умолчанию стоит SHELL=/bin/sh, хотя в разных описаниях встречаю SHELL=/bin/bash
   Обычно sh используется для стандартизации, но он имеет ограниченный по сравнению с bash функционал и немного отличающийся синтаксис.

Оффлайн ek-nfn

  • Местный
  • *****
  • Автор темы
  • Сообщений: 1422
Re: Вопросы по cron и anacron
« Ответ #2 : Июнь 23, 2014, 15:42:33 »
   Нет, задания хранятся в каталогах /var/spool/cron|anacron/ и имеют имя пользователя.
Для anacron разве не в конфигурационном файле /etc/anacrontab ? В литературе наталкивался лишь на этот файл. А в указанном вами каталоге видел лишь файлы со временем последнего выполнения самих заданий. Для cron да, задания там.

В остальном все так и сделано, но задания не запускаются. Anacron даже показывает дату последнего запуска задания в файлах каталога - /var/spool/anacron/ , но я не вижу их выполнения.

простейший скрипт
#!/bin/sh
xterm -e "dialog --msgbox 'Testing cron...' 234 234"

запускается и в терминале, и в ФМ, но не в cron, anacron. Задание такое

для cron (файл /var/spool/cron/crontabs/nfn
*/5 * * * * export DISPLAY=:0.0 && /home/nfn/scripts/crontest.sh
для anacron (файл /etc/anacrontab)
1 2 export DISPLAY=:0.0 && /home/nfn/scripts/crontest.sh


Ставил и Gnome Schedule в надежде, что он правильно пропишет задания. Прописывает в файл заданий cron, но и через него задания не запускаются. Но он при записи задания что-то выдавал про домашнюю папку. Но не ошибку. Смысл написанного не понял, гугл коряво переводит. К тому же задание прописывается в файл cron, но с непонятными символами в конце его строки.


Можно ли поменять  редактор на свой?
   Запустите команду
select-editor

Спасибо за подсказку. Выбор редакторов невелик, но хоть узнал название того, что вводил в ступор - ed .  ;D  Выбрал немного более знакомый vim.tiny. Он хоть сразу вывел уже вписанные задания, которые можно отредактировать.   Не предложены к выбору установленные в систему gedit и mousepad.
nfn@nfn-901:~$ select-editor

Select an editor.  To change later, run 'select-editor'.
  1. /bin/ed
  2. /usr/bin/vim.tiny

Choose 1-2 []:
« Последнее редактирование: Июнь 23, 2014, 15:52:33 от ek-nfn »
Devuan ASCII x32..x64

Оффлайн HsH

  • Administrator
  • *****
  • Сообщений: 3474
Re: Вопросы по cron и anacron
« Ответ #3 : Июнь 23, 2014, 16:51:04 »
Для anacron разве не в конфигурационном файле /etc/anacrontab ?
в указанном вами каталоге видел лишь файлы со временем последнего выполнения самих заданий.
     Расположение файла задания можно указать параметром "-t" (вместо дефолтного /etc/anacrontab). По поводу каталога /var/spool/anacron вы правы - в нём хранятся метки последнего выполнения заданий. Anacron использовать не приходилось, поэтому был не в курсе данного нюанса - спасибо, буду знать.

В остальном все так и сделано, но задания не запускаются.
    Сервис anacron по-умолчанию работает только от root. Когда вы указываете переменную DISPLAY=:0.0, она устанавливается для окружения root, а графика запущена в сеансе пользователя - возможно поэтому у вас не запускаются GUI-приложения. Попробуйте делать экспорт дисплея в теле скрипта, а не в команде anacron.

Какая именно задача стоит для автоматизации с помощью cron|anacron?

Anacron даже показывает дату последнего запуска задания в файлах каталога - /var/spool/anacron/ , но я не вижу их выполнения.
   Попробуйте команды типа "date >> /tmp/anacron.test", чтобы удостовериться в срабатывании.

он при записи задания что-то выдавал про домашнюю папку. Но не ошибку. Смысл написанного не понял, гугл коряво переводит.
    Приведите точный текст сообщения.

Выбор редакторов невелик
Не предложены к выбору установленные в систему gedit и mousepad.
    Почему-то отсутствует mcedit - в системе есть mc? Редакторы с GUI-интерфейсом отображаться не будут - их использование в консоли (tty) невозможно.

Оффлайн ek-nfn

  • Местный
  • *****
  • Автор темы
  • Сообщений: 1422
Re: Вопросы по cron и anacron
« Ответ #4 : Июнь 23, 2014, 18:01:55 »
  
Цитировать (выделенное)
 Сервис anacron по-умолчанию работает только от root. Когда вы указываете переменную DISPLAY=:0.0, она устанавливается для окружения root, а графика запущена в сеансе пользователя - возможно поэтому у вас не запускаются GUI-приложения. Попробуйте делать экспорт дисплея в теле скрипта, а не в команде anacron.

Не помогло .  >:(
Думаю, что проблема единая для cron, anacron, Gnome Schedule. Поэтому решил пока разобраться с cron, информации по которому и пользователей которого значительно больше. Поэтому дальше все примеры будут для Cron .

Цитировать (выделенное)
Какая именно задача стоит для автоматизации с помощью cron|anacron?

Прописанные задачи. При запуске вручную все команды нормально отрабатывают ( в окнах). Хотелось бы и через cron видеть тоже самое

# Тест
*/2 * * * * export /home/nfn/scripts/crontest.sh

# Синхронизация с яндекс-диском, в каждый понедельник
* * * * 1 yandex-disk DISPLAY=:0.0 && sakura -x "yandex-disk sync" -h

# Синхронизация архивов с помощью FreeFileSync, интервал 3 дня
* * */3 * * Backup_FreeFileSync gksu FreeFileSync "/media/Work/Yandex.Disk/Архивы/Архивы_настроек.ffs_batch"


Цитировать (выделенное)
Приведите точный текст сообщения.





вносит такую строку
*/2 * * * * echo "Прошло 2 минуты" # JOB_ID_4

не запускается и оно. А упоминание домашней папки и вызвало вопросы о правильном расположении файла задач. Для anacron видел пример переноса файлов в домашнюю папку.

  
Цитировать (выделенное)
Почему-то отсутствует mcedit - в системе есть mc?
Я им не пользуюсь, удалил.
« Последнее редактирование: Июнь 23, 2014, 18:10:34 от ek-nfn »
Devuan ASCII x32..x64

Оффлайн ludoed

  • Местный
  • *****
  • Сообщений: 861
  • ludoed1970@jabber.ru
Re: Вопросы по cron и anacron
« Ответ #5 : Июнь 23, 2014, 18:36:30 »
В начало файла crontab добавьте строки:
DISPLAY=:0.0
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
Чтобы запускались оконные приложения
все юниксы очень дружелюбны.. они просто очень разборчивы в друзьях ;)

Настоящее труЪ: самописное ядро, выращенные на кухне кристаллы и программирование перемычками :)

Оффлайн ek-nfn

  • Местный
  • *****
  • Автор темы
  • Сообщений: 1422
Re: Вопросы по cron и anacron
« Ответ #6 : Июнь 23, 2014, 20:33:50 »
нее.. не помогло..

Частично работает задание  */2 * * * * test date >> /tmp/cron.test - создает пустой файл и далее у этого файла не меняется время его создания. Но стоит его удалить, как в течение двух минут он создается заново и вновь пустым.  

Может я что-то нужное удалил из системы? Cron можно переустановить без потери системных настроек ? Он в системе что-то регулярно обновляет, судя по конфигурационному файлу.

У cron есть лог-файл ??  Не нашел в системе
« Последнее редактирование: Июнь 23, 2014, 20:37:42 от ek-nfn »
Devuan ASCII x32..x64

Оффлайн HsH

  • Administrator
  • *****
  • Сообщений: 3474
Re: Вопросы по cron и anacron
« Ответ #7 : Июнь 23, 2014, 21:06:19 »
нее.. не помогло..
    Вы неправильно формируете задания для cron - здесь, в отличие от anacron, не нужен идентификатор, а только временные параметры (минуты/часы/день месяца/месяц/день недели) и команда.

# Тест
*/2 * * * * export /home/nfn/scripts/crontest.sh
    Команда export имеет синтаксис (упрощённо):
export ПЕРЕМЕННАЯ=ЗНАЧЕНИЕВаша текущая запись не имеет смысла - причина указана выше, аналогично для других команд.

# Синхронизация с яндекс-диском, в каждый понедельник
* * * * 1 yandex-disk DISPLAY=:0.0 && sakura -x "yandex-disk sync" -h
    Зачем вызывать графический терминал и в нём выполнять команду синхронизации? Почему нельзя её сразу запустить?

# Синхронизация архивов с помощью FreeFileSync, интервал 3 дня
* * */3 * * Backup_FreeFileSync gksu FreeFileSync "/media/Work/Yandex.Disk/Архивы/Архивы_настроек.ffs_batch"
    Кто будет вводить пароль при запросе gksu? При необходимости выполнения команды от root нужно прописывать их в кронтаб root. Не буду спрашивать, чем не устроил rsync, но FreeFileSync, если не ошибаюсь, также имеет интерфейс командной строки и планировщик.

Оффлайн ek-nfn

  • Местный
  • *****
  • Автор темы
  • Сообщений: 1422
Re: Вопросы по cron и anacron
« Ответ #8 : Июнь 23, 2014, 21:31:55 »
Цитировать (выделенное)
Вы неправильно формируете задания для cron - здесь, в отличие от anacron, не нужен идентификатор
точно, переклинило уже. Тупо скопировал из anacron.  Заработало задание */2 * * * * date >> /tmp/cron.test  :D
По остальным сейчас поэкспериментирую уменьшив интервал времени.

Цитировать (выделенное)
Команда export имеет синтаксис (упрощённо):
export ПЕРЕМЕННАЯ=ЗНАЧЕНИЕВаша текущая запись не имеет смысла - причина указана выше, аналогично для других команд.
Скопировал эту команду из какой-то статьи по настройке anacron. Как запускать этот скрипт ?
#!/bin/sh
DISPLAY=:0.0 && xterm -e "dialog --msgbox 'Testing cron...' 234 234"


Цитировать (выделенное)
Зачем вызывать графический терминал и в нём выполнять команду синхронизации? Почему нельзя её сразу запустить?
Чтобы видеть ход процесса, иначе работает в фоне.

Цитировать (выделенное)
Кто будет вводить пароль при запросе gksu? При необходимости выполнения команды от root нужно прописывать их в кронтаб root. Не буду спрашивать, чем не устроил rsync, но FreeFileSync, если не ошибаюсь, также имеет интерфейс командной строки и планировщик.
Ввод пароля отключен. К FreeFileSync привык еще со времен винды. Планировщик, как понял, работает лишь в винде.
Devuan ASCII x32..x64

Оффлайн HsH

  • Administrator
  • *****
  • Сообщений: 3474
Re: Вопросы по cron и anacron
« Ответ #9 : Июнь 23, 2014, 22:40:18 »
Как запускать этот скрипт ?
    Если у него имя test.sh, то для запуска каждые 5 минут строка задания может иметь вид:
*/5 * * * * /путь/к_файлу/test.shФайл test.sh должен иметь права 755.

Чтобы видеть ход процесса, иначе работает в фоне.
. . .
К FreeFileSync привык еще со времен винды.
    Не сочтите за нравоучение и снобизм, но я действительно не понимаю, зачем использовать инструменты автоматического выполнения заданий, если при этом требуется контроль или прямое участие пользователя? Можно запускать эти задания вручную.
    Если же действительно требуется автоматизация, которая просто выполняет свою работу, рекомендую использовать предназначенные для этого инструменты и схемы.

Оффлайн ek-nfn

  • Местный
  • *****
  • Автор темы
  • Сообщений: 1422
Re: Вопросы по cron и anacron
« Ответ #10 : Июнь 23, 2014, 23:41:35 »
 
Цитировать (выделенное)
  Если у него имя test.sh, то для запуска каждые 5 минут строка задания может иметь вид:
*/5 * * * * /путь/к_файлу/test.shФайл test.sh должен иметь права 755.

Не запускается. В окне терминала запускается
вид команды
*/2 * * * * /home/nfn/scripts/crontest.sh

сам скрипт
#!/bin/bash
xterm -e "dialog --msgbox 'Testing cron...' 234 234"


 
Цитировать (выделенное)
  Не сочтите за нравоучение и снобизм, но я действительно не понимаю, зачем использовать инструменты автоматического выполнения заданий, если при этом требуется контроль или прямое участие пользователя? Можно запускать эти задания вручную.
   
Яндекс синхронизирует подолгу (1-3 гб) .  Чтобы  в этот момент случайно не перезагрузить (выключить) компьютер и хочу знать, что идет процесс и видеть сколько еще осталось. Без окна яндекс-диск в cron запускается.
К FreeFileSync сильно не привязан. Можно и сменить на rsync, но это требует изучения того софта.

Вручную запускать можно, но забываю это делать регулярно. Можно, конечно, запускать таймеры-напоминалки  ;D , но уже интересно, почему они не запускаются в cron .
Devuan ASCII x32..x64

Оффлайн puh01

  • Постоялец
  • ***
  • Сообщений: 179
Re: Вопросы по cron и anacron
« Ответ #11 : Июнь 24, 2014, 15:11:46 »
  ek-nfn  - посмотрите может вам подойдёт такой вариант синхронизации Яндекса:
Xubuntu 16.04, Xubuntu 16.10 - обе 64 битные.

Оффлайн ek-nfn

  • Местный
  • *****
  • Автор темы
  • Сообщений: 1422
Re: Вопросы по cron и anacron
« Ответ #12 : Июнь 24, 2014, 16:07:05 »
Ну спасибо, puh01, за супер плагин  :) Он еще и сообщения выдает об ошибках синхронизации, старте и завершении. Ссылку на этот плагин надо где-то в отдельной теме разместить, для большинства вещь нужная.
Терминальный yandex-disk status уже достал.
Devuan ASCII x32..x64

Оффлайн puh01

  • Постоялец
  • ***
  • Сообщений: 179
Re: Вопросы по cron и anacron
« Ответ #13 : Июнь 24, 2014, 17:23:55 »
 Правда его всё ещё допиливают, так что глюки обеспечены...
Xubuntu 16.04, Xubuntu 16.10 - обе 64 битные.

Оффлайн ek-nfn

  • Местный
  • *****
  • Автор темы
  • Сообщений: 1422
Re: Вопросы по cron и anacron
« Ответ #14 : Ноябрь 02, 2014, 20:22:28 »
Когда вы указываете переменную DISPLAY=:0.0, она устанавливается для окружения root, а графика запущена в сеансе пользователя - возможно поэтому у вас не запускаются GUI-приложения. Попробуйте делать экспорт дисплея в теле скрипта, а не в команде anacron.

Разобрался с этим. Чтобы запускаемая задача cron открывала нужные окна для определенных команд, переменную DISPLAY=:0.0 необходимо не просто перенести в начало исполняемого скрипта, а разместить непосредственно в строке команды, которую требуется выполнять в окне.
Например, для запуска yandex-disk в окне терминала строка скрипта должна выглядеть так:
DISPLAY=:0.0 lxterminal -e yandex-disk sync

Для окна вывода сообщений notify так:
DISPLAY=:0.0 notify-send "Яндекс-диск" "Запущен"

и т.д.
Devuan ASCII x32..x64