The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Добавление\удаление заданий crontab через shell, !*! fire002, 19-Авг-13, 18:15  [смотреть все]
Камрады, подскажите как реализовать редактирование юзерского крона(crontab -e) через шелл.
Если добавлять непосредственно в файл, /var/spool/cron/username , то крон отваливается с ошибкой:
/usr/sbin/cron[23287]: (amx) WRONG INODE INFO (crontabs/username)
  • Добавление\удаление заданий crontab через shell, !*! тень_pavel_simple, 18:28 , 19-Авг-13 (1)
    > Камрады, подскажите как реализовать редактирование юзерского крона(crontab -e) через
    > шелл.
    > Если добавлять непосредственно в файл, /var/spool/cron/username , то крон отваливается
    > с ошибкой:
    > /usr/sbin/cron[23287]: (amx) WRONG INODE INFO (crontabs/username)

    man crontab

    • Добавление\удаление заданий crontab через shell, !*! allez, 18:55 , 19-Авг-13 (2)
      >> Камрады, подскажите как реализовать редактирование юзерского крона(crontab -e) через
      >> шелл.
      >> Если добавлять непосредственно в файл, /var/spool/cron/username , то крон отваливается
      >> с ошибкой:
      >> /usr/sbin/cron[23287]: (amx) WRONG INODE INFO (crontabs/username)
      > man crontab

      Сдается мне, что автор темы этот ман все же читал, по крайней мере, crontab -e
      он упомянул. Возможно он хочет редактировать кронтаб не интерактивно, а из скрипта...

      • Добавление\удаление заданий crontab через shell, !*! fire002, 19:01 , 19-Авг-13 (3)
        >>> Камрады, подскажите как реализовать редактирование юзерского крона(crontab -e) через
        >>> шелл.
        >>> Если добавлять непосредственно в файл, /var/spool/cron/username , то крон отваливается
        >>> с ошибкой:
        >>> /usr/sbin/cron[23287]: (amx) WRONG INODE INFO (crontabs/username)
        >> man crontab
        > Сдается мне, что автор темы этот ман все же читал, по крайней
        > мере, crontab -e
        > он упомянул. Возможно он хочет редактировать кронтаб не интерактивно, а из скрипта...

        Именно из скрипта.

        • Добавление\удаление заданий crontab через shell, !*! михалыч, 19:07 , 19-Авг-13 (4)
          >>>> Камрады, подскажите как реализовать редактирование юзерского крона(crontab -e) через
          >>>> шелл.
          >>>> Если добавлять непосредственно в файл, /var/spool/cron/username , то крон отваливается
          >>>> с ошибкой:
          >>>> /usr/sbin/cron[23287]: (amx) WRONG INODE INFO (crontabs/username)
          >>> man crontab
          >> Сдается мне, что автор темы этот ман все же читал, по крайней
          >> мере, crontab -e
          >> он упомянул. Возможно он хочет редактировать кронтаб не интерактивно, а из скрипта...
          > Именно из скрипта.

          А в чём трудность?
          echo "* * * * * /bin/echo test" >> /var/cron/tabs/user

        • Добавление\удаление заданий crontab через shell, !*! тень_pavel_simple, 19:11 , 19-Авг-13 (5)
          >>>> Камрады, подскажите как реализовать редактирование юзерского крона(crontab -e) через
          >>>> шелл.
          >>>> Если добавлять непосредственно в файл, /var/spool/cron/username , то крон отваливается
          >>>> с ошибкой:
          >>>> /usr/sbin/cron[23287]: (amx) WRONG INODE INFO (crontabs/username)
          >>> man crontab
          >> Сдается мне, что автор темы этот ман все же читал, по крайней
          >> мере, crontab -e
          >> он упомянул. Возможно он хочет редактировать кронтаб не интерактивно, а из скрипта...
          > Именно из скрипта.

          не уверен что читал
                 The  first  form  of  this command is used to install a new crontab from some named file or standard input if the pseudo-filename
                 ``-'' is given.

          • Добавление\удаление заданий crontab через shell, !*! михалыч, 19:33 , 19-Авг-13 (6)
            >[оверквотинг удален]
            >>>> man crontab
            >>> Сдается мне, что автор темы этот ман все же читал, по крайней
            >>> мере, crontab -e
            >>> он упомянул. Возможно он хочет редактировать кронтаб не интерактивно, а из скрипта...
            >> Именно из скрипта.
            > не уверен что читал
            >        The  first  form
            >  of  this command is used to install a new
            > crontab from some named file or standard input if the pseudo-filename
            >        ``-'' is given.

            Так точно! ))
            echo "* * * * * /bin/echo test" | crontab -u username -

            Хотя у меня и тупо >> сработало.

            • Добавление\удаление заданий crontab через shell, !*! fire002, 21:13 , 19-Авг-13 (7)
              >[оверквотинг удален]
              >>> Именно из скрипта.
              >> не уверен что читал
              >>        The  first  form
              >>  of  this command is used to install a new
              >> crontab from some named file or standard input if the pseudo-filename
              >>        ``-'' is given.
              > Так точно! ))
              > echo "* * * * * /bin/echo test" | crontab -u username
              > -
              > Хотя у меня и тупо >> сработало.

              Оно то работает, но стоит зачада еще как-то удалять уже не нужные строки из файла, а не тупо -r
              Попробую конечно седом, поглядим.

              • Добавление\удаление заданий crontab через shell, !*! Аноним, 21:48 , 19-Авг-13 (8)
                > Оно то работает, но стоит зачада еще как-то удалять уже не нужные строки из файла, а не тупо -r

                вначале выгружаешь что есть с -l, правишь как надо и потом заливаешь обратно.
                Могу ещё раз повторить но это уже за деньги.

                > Попробую конечно седом, поглядим.

                Чем сподобишься. Это уже дело 18-ое. Идею тебе _дали_.

        • Добавление\удаление заданий crontab через shell, !*! Andrey Mitrofanov, 22:59 , 19-Авг-13 (9)
          > Именно из скрипта.

          $ crontab -r
          $ add(){ ls -l $1; echo "* * * * * echo TEXT" >>$1; touch -d '+5 minutes' $1; }
          $ export -f add
          $ VISUAL=add crontab -e
          no crontab for abm - using an empty one
          -rw------- 1 user crontab 888 Авг 19 22:55 /tmp/crontab.NyUpaG/crontab
          crontab: installing new crontab
          $ crontab -l |grep -v ^#
          * * * * * echo TEXT
          $ add(){ ls -l $1; echo "* * * * * cat FILE" >>$1; touch -d '+5 minutes' $1; }
          $ VISUAL=add crontab -e
          -rw------- 1 user crontab 908 Авг 19 22:56 /tmp/crontab.S86Hwg/crontab
          crontab: installing new crontab
          $ crontab -l |grep -v ^#
          * * * * * echo TEXT
          * * * * * cat FILE
          $ del(){ sed -i "/echo TEXT$/d" $1; touch -d '+5 minutes' $1; }
          $ export -f del
          $ VISUAL=del crontab -e
          crontab: installing new crontab
          $ crontab -l |grep -v ^#
          * * * * * cat FILE
          $ _

          • Добавление\удаление заданий crontab через shell, !*! fire002, 02:39 , 20-Авг-13 (10)
            >> Именно из скрипта.

            Что-то не работает у меня ваш вариант, хотя может и я туплю.

            $ add(){ ls -l $1; echo "* * * * * echo TEXT" >>$1; touch -d '+5 minutes' $1; }
            $ export -f add
            export: 18: Illegal option -f
            $ VISUAL=add crontab -e
            no crontab for amx - using an empty one
            /bin/sh: add: not found
            crontab: "add" exited with status 127

            • Добавление\удаление заданий crontab через shell, !*! Andrey Mitrofanov, 10:46 , 20-Авг-13 (11)
              > $ export -f add
              > export: 18: Illegal option -f

              У меня работает. GNU/Linux, GNU bash, GNU coreutiuls.

              > /bin/sh: add: not found

              Бывает.

            • Добавление\удаление заданий crontab через shell, !*! михалыч, 11:31 , 20-Авг-13 (12)
              >>> Именно из скрипта.
              > Что-то не работает у меня ваш вариант, хотя может и я туплю.

              Нет. Ты не тупишь. У меня также как у тебя работает.))
              BSD ? Мужайся!
              Братья масоны не оставят в беде!
              То, что доктор прописал.

              cat create_crontab.sh


              #!/bin/sh


              create_crontab() {
                  local b e
                  b=$1
                  e=$2


                  if crontab -u username -l > /dev/null 2>&1; then
                      TMPFILE=`mktemp -t username` || exit 1
                      cat > $TMPFILE
                      crontab -u username -l | sed -e "/^$b\$/,/^$e\$/d" | \
                      cat - $TMPFILE | crontab -u username -
                      rm $TMPFILE
                  else
                      crontab -u username -
                  fi
              }


              create_crontab '#BEGIN_JOB_1' '#END_JOB_1' <<EOT
              #BEGIN_JOB_1
              MAILTO=root

              */5 * * * * echo TEXT
              #END_JOB_1
              EOT


              cat delete_crontab.sh

              #!/bin/sh


              delete_crontab() {
                  local b e
                  b=$1
                  e=$2


                  TMPFILE=`mktemp -t username` || exit 1
                  crontab -u username -l | sed -e "/^$b\$/,/^$e\$/d" > $TMPFILE
                  if [ -s $TMPFILE ]; then
                      crontab -u username -l | sed -e "/^$b\$/,/^$e\$/d" | crontab -u username -
                      echo "These are the remaining lines:"
                      crontab -u username -l
                  else
                      echo y | crontab -u username -r
                      echo "crontab for user username removed"
                  fi
                  rm $TMPFILE
              }


              delete_crontab '#BEGIN_JOB_1' '#END_JOB_1'

              Идея с поста 8

              Принцип с #BEGIN_JOB_* и #END_JOB_* думаю понятен,
              то есть удаляем только то что между конкретными строками, а остальное переписываем.

              • Добавление\удаление заданий crontab через shell, !*! Andrey Mitrofanov, 11:21 , 21-Авг-13 (13)
                >>>> Именно из скрипта.
                >> Что-то не работает у меня ваш вариант, хотя может и я туплю.
                > Нет. Ты не тупишь. У меня также как у тебя работает.))
                > BSD ? Мужайся!
                > Братья масоны не оставят в беде!

                И построят братский race condition.

                > То, что доктор прописал.

                crontab -u username -l | ... | crontab -u username -

                Оно совсем не страшно. Если _не сработает_ одно удаление или добавление из... тысячи или миллиона. Тем более у какого-то там плотника-каменщика-подметальщика и где-то там очень далеко.

  • Добавление\удаление заданий crontab через shell, !*! pavlinux, 05:25 , 22-Авг-13 (15) –1
    > Камрады, подскажите как реализовать редактирование юзерского крона(crontab -e) через шелл.

    А ваще у вас питатые операционки

    $~> crontab -u $USER -l
    bash: /usr/bin/crontab: Отказано в доступе




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру