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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Запуск программы в crontab с правами root  (Прочитано 26442 раз)

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

joni2009ok

  • Автор темы
  • Гость
Привет!

Такая проблема запуск бэкапа в кронтаб
В данный момент такая команда
Цитировать
MAILTO=epashkov@pngtools.ru
0 00 * * * /usr/local/fsbackup/create_backup.sh

Но она от туда не запускается.
Пробую с консоли, просит права админа, пишу в командной строке sudo /usr/local/fsbackup/create_backup.sh
Ввожу  пароль все работает!

Так вот как мне в кронтаб запустить эту команду с правами админа?
Строки
 0 00 * * * sudo /usr/local/fsbackup/create_backup.sh
Видимо мало, пробовал не получается.

ubuntu 8.10 server
fsbackup 1.2

Оффлайн Belyaev Nikolay

  • Активист
  • *
  • Сообщений: 734
    • Просмотр профиля
    • моя работа- дробилки, грохота...
Re: Запуск программы в crontab с правами root
« Ответ #1 : 11 Марта 2009, 21:22:39 »
ey просто ради проверки
#!/bin/sh
стоит в самом начале скрипта
"Сначала они вас игнорируют, потом смеются над вами, потом борются с вами, а потом вы побеждаете"
Махатма Ганди

Оффлайн vasilisc

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2563
  • г.Северодвинск - строим АПЛ
    • Просмотр профиля
    • Авторские статьи об OpenSource
Re: Запуск программы в crontab с правами root
« Ответ #2 : 11 Марта 2009, 21:30:36 »
из крона проги запускаются от прав рута если указано в поле юзверя слово root
проверьте лучше ваш кронтаб и особенно поле юзверь (6 поле)

вот например мой кронтаб
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 )
#


joni2009ok

  • Автор темы
  • Гость
Re: Запуск программы в crontab с правами root
« Ответ #3 : 13 Марта 2009, 14:32:52 »
из крона проги запускаются от прав рута если указано в поле юзверя слово root
проверьте лучше ваш кронтаб и особенно поле юзверь (6 поле)

вот например мой кронтаб
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 )
#

это мой кронтаб

# m h  dom mon dow   command
MAILTO=epashkov@pngtools.ru
0 00 * * * root /usr/local/fsbackup/create_backup.sh &>/tmp/cron.log
А вот что после выполнения с root
Цитировать
*******************************************
  *                                         *
  *        W E L C O M E  to  R O O T       *
  *                                         *
  *   Version  5.18/00b     10 March 2008   *
  *                                         *
  *  You are welcome to visit our Web site  *
  *          http://root.cern.ch            *
  *                                         *
  *******************************************

ROOT 5.18/00b (branches/v5-18-00-patches@22563, Oct 19 2008, 22:04:00 on linux)

CINT/ROOT C/C++ Interpreter version 5.16.29, Jan 08, 2008
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.

Processing /usr/local/fsbackup/create_backup.sh...
Error: G__getvariable: expression [$backup_mysql-eq1];then /usr/local/fsbackup/create_backup.sh:17:
Error: Missing one of '

' expected at or after line 9.
Error: Unexpected end of file (G__fgetname():2) /usr/local/fsbackup/create_backup.sh:39:
Error: Missing one of '

' expected at or after line 9.
Error: Unexpected end of file (G__fgetname():2) /usr/local/fsbackup/create_backup.sh:39:
Error: Missing one of '

' expected at or after line 9.
Error: Unexpected end of file (G__fgetname():2) /usr/local/fsbackup/create_backup.sh:39:
Error: Missing one of '

' expected at or after line 9.
Error: Unexpected end of file (G__fgetname():2) /usr/local/fsbackup/create_backup.sh:39:
Error: Missing one of '

' expected at or after line 9.
Error: Unexpected end of file (G__fgetname():2) /usr/local/fsbackup/create_backup.sh:39:
Error: Unexpected end of file (G__fgetc()) /usr/local/fsbackup/create_backup.sh:39:

joni2009ok

  • Автор темы
  • Гость
Re: Запуск программы в crontab с правами root
« Ответ #4 : 13 Марта 2009, 14:36:34 »
ey просто ради проверки
#!/bin/sh
стоит в самом начале скрипта

Не понял. Вначале у меня ничего не стоит. Смотрите выше.
Что это за команда?

Оффлайн Belyaev Nikolay

  • Активист
  • *
  • Сообщений: 734
    • Просмотр профиля
    • моя работа- дробилки, грохота...
Re: Запуск программы в crontab с правами root
« Ответ #5 : 13 Марта 2009, 14:39:02 »
внутри скрипта (create_backup.sh в вашем слачае) первая строка показывает какую оболочку надо запускать sh, bash или ещё что
один раз писал скрипт он классно выполнялся с консоли, но из под крона нет. потому как просто забыл написать эту строку.
"Сначала они вас игнорируют, потом смеются над вами, потом борются с вами, а потом вы побеждаете"
Махатма Ганди

Оффлайн Lion-Simba

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: Запуск программы в crontab с правами root
« Ответ #6 : 13 Марта 2009, 14:44:35 »
Тварищи, кронтабы бывают разные!

Есть общесистемный (рутовый) кронтаб, который настраивается путем правки файла /etc/crontab

И есть пользовательские кронтабы, которые настраиваются пользователями при помощи команды crontab -e

Дык вот поле user есть только в общесистемном кронтабе. Команды пользовательских кронтабов запускаются от имени соответствующих пользователей.
Проблема автора в том, что он пытается запустить команду с правами рута через пользовательский кронтаб, а не через общесистемный.
Оказываю индивидуальную платную техподдержку широкого профиля. Обращаться в ЛС или Jabber.

joni2009ok

  • Автор темы
  • Гость
Re: Запуск программы в crontab с правами root
« Ответ #7 : 13 Марта 2009, 15:13:59 »
Тварищи, кронтабы бывают разные!

Есть общесистемный (рутовый) кронтаб, который настраивается путем правки файла /etc/crontab

И есть пользовательские кронтабы, которые настраиваются пользователями при помощи команды crontab -e

Дык вот поле user есть только в общесистемном кронтабе. Команды пользовательских кронтабов запускаются от имени соответствующих пользователей.
Проблема автора в том, что он пытается запустить команду с правами рута через пользовательский кронтаб, а не через общесистемный.

Правлю в crontab -e     :coolsmiley:

Оффлайн zloy tapok

  • Любитель
  • *
  • Сообщений: 90
    • Просмотр профиля
Re: Запуск программы в crontab с правами root
« Ответ #8 : 13 Марта 2009, 15:38:58 »
На самом деле крон проходится по всем директориям и ищет в них записи на запланированное данное время (/var/spool/cron или в его подкаталогах в зависимости от дистрибутива /etc/cron.d, а так же /etc/cnotab). Таблицы расписаний запуска административных заданий хранятся в /etc/crontab и каталоге /etc/cron.d обработку в этом файле и этой директории крон делает одинаково...

У меня от рута все чудесно пашет, когда сделать sudo crontab -e
Gentoo 2008.0 | Lenovo Y510 5A

Оффлайн Belyaev Nikolay

  • Активист
  • *
  • Сообщений: 734
    • Просмотр профиля
    • моя работа- дробилки, грохота...
Re: Запуск программы в crontab с правами root
« Ответ #9 : 13 Марта 2009, 15:46:32 »
Цитировать
Правлю в crontab -e
надо в sudo crontab -e
"Сначала они вас игнорируют, потом смеются над вами, потом борются с вами, а потом вы побеждаете"
Махатма Ганди

joni2009ok

  • Автор темы
  • Гость
Re: Запуск программы в crontab с правами root
« Ответ #10 : 13 Марта 2009, 15:57:58 »
Уфффффффф
Чет туговато у меня с этим crontab
Что делаю конкретно

В консоли crontab -e
Цитировать
# m h  dom mon dow   command
MAILTO=epashkov@pngtools.ru
50 15 * * * root /usr/local/fsbackup/create_backup.sh &>/tmp/cron.log
Не пашет
----------------------------------------------------------------------------
В консоли sudo crontab -e
Цитировать
Цитировать
# m h  dom mon dow   command
MAILTO=epashkov@pngtools.ru
50 15 * * * root /usr/local/fsbackup/create_backup.sh &>/tmp/cron.log
Не пашет
----------------------------------------------------------------------------
Открываю общесистемный (рутовый) кронтаб /etc/crontab
Цитировать
HELL=/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    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
50 15 * * * root /usr/local/fsbackup/create_backup.sh &>/tmp/cron.log
Не пашет
----------------------------------------------------------------------------
Может я что то со временем не так пишу?
Лог пустой

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Запуск программы в crontab с правами root
« Ответ #11 : 13 Марта 2009, 16:07:12 »
А вот что после выполнения с root
Цитировать
*******************************************
  *                                         *
  *        W E L C O M E  to  R O O T       *
  *                                         *
  *   Version  5.18/00b     10 March 2008   *
  *                                         *
  *  You are welcome to visit our Web site  *
  *          http://root.cern.ch            *
  *                                         *
  *******************************************

ROOT 5.18/00b (branches/v5-18-00-patches@22563, Oct 19 2008, 22:04:00 on linux)

CINT/ROOT C/C++ Interpreter version 5.16.29, Jan 08, 2008
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
:2funny:
Это мощно!

Следует различать пользователя root, имеющегося в юниксах, и программный продукт ROOT, написанный в ЦЕРНе, что в Швейцарии под Женевой, для обработки результатов ядерно-физических экспериментов (он появился несколько раньше БАК).
« Последнее редактирование: 13 Марта 2009, 16:10:49 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн SkeL2007

  • Участник
  • *
  • Сообщений: 204
    • Просмотр профиля
Re: Запуск программы в crontab с правами root
« Ответ #12 : 13 Марта 2009, 16:22:04 »
Цитировать
В консоли sudo crontab -e
# m h  dom mon dow   command
MAILTO=epashkov@pngtools.ru
50 15 * * * root /usr/local/fsbackup/create_backup.sh &>/tmp/cron.log
Не пашет
Тебе же сказали  в пользовательском кронтабе поля "юзер" нет. Убери "root"
« Последнее редактирование: 13 Марта 2009, 16:27:43 от SkeL2007 »

joni2009ok

  • Автор темы
  • Гость
Re: Запуск программы в crontab с правами root
« Ответ #13 : 13 Марта 2009, 16:24:20 »
Цитировать
В консоли sudo crontab -e
# m h  dom mon dow   command
MAILTO=epashkov@pngtools.ru
50 15 * * * root /usr/local/fsbackup/create_backup.sh &>/tmp/cron.log
Не пашет
Тебе же сказали  в аользовательском кронтабе поля "юзер" нет. Убери "root"
Да и без рут не пашет

Оффлайн zloy tapok

  • Любитель
  • *
  • Сообщений: 90
    • Просмотр профиля
Re: Запуск программы в crontab с правами root
« Ответ #14 : 13 Марта 2009, 16:26:16 »
покажи скрипт
Gentoo 2008.0 | Lenovo Y510 5A

 

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