The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Проблема со скриптом в bash, !*! Argus, 17-Янв-18, 15:44  [смотреть все]
Привет всем.
Есть простенький скрипт на bash:

#!/usr/local/bin/bash

list=(`/usr/local/sbin/sasldblistusers2 -f /var/spool/postfix/usr/local/etc/sasldb2 | awk -F\@ '{print $1}'| grep -v -x "admin" | sort `)

rm /tmp/quota_test
touch /tmp/quota_test

rm /tmp/quota_list
touch /tmp/quota_list

for (( i=0; i<${#list[@]}; i++ )) do
Q=`echo "lqm user/"${list[i]} | /usr/local/bin/cyradm -u admin --password PassworD localhost`
echo ${list[i]} >> /tmp/quota_list
echo $Q >> /tmp/quota_test
done


При запуске скрипта вручную - все ОК. Отрабатывает как надо.
Но если запускать этот скрипт через cron - в SDTERR вываливаются 2 ошибки:

exec: perl: not found
exec: perl: not found

Могу сказать точно, что не выполняется команда присвоения значения переменной Q:
Q=`echo "lqm user/"${list[i]} | /usr/local/bin/cyradm -u admin --password PassworD localhost`

Такое ощущение что при запуске из cron он не может найти путь к perl. Хотя причем здесь Perl?


Причем на другой почти такой же системе все ОК.

Что делать подскажите плиз.

----------------
Система: FreeBSD 11.1-STABLE
Строка запуска из crontab:
*/5     *       *       *       *       root    /usr/local/etc/postfix/script/quota_test.sh 2> /tmp/quota_err

  • Проблема со скриптом в bash, !*! Pahanivo, 16:09 , 17-Янв-18 (1)
  • Проблема со скриптом в bash, !*! Andrey Mitrofanov, 16:14 , 17-Янв-18 (2)
    >[оверквотинг удален]
    > rm /tmp/quota_list
    > touch /tmp/quota_list
    > for (( i=0; i<${#list[@]}; i++ )) do
    >  Q=`echo "lqm user/"${list[i]} | /usr/local/bin/cyradm -u admin --password PassworD
    > localhost`
    >  echo ${list[i]} >> /tmp/quota_list
    >  echo $Q >> /tmp/quota_test
    > done
    > При запуске скрипта вручную - все ОК. Отрабатывает как надо.
    > Но если запускать этот скрипт через cron

    , то надо PATH= прописать...

    https://duckduckgo.com/?q=cron+"PATH="+site:www.op...

    > exec: perl: not found
    > exec: perl: not found
    > Такое ощущение что при запуске из cron он не может найти путь
    > к perl. Хотя причем здесь Perl?

    Очевидно, он вызывается по имени [без полного пути] в одном из скриптов (утилит) в твоём скрипте.

    > Причем на другой почти такой же системе все ОК.

    Значит, не саовсем "такая же". Перл не той системы, гранаты, крон, кронтаб, итдтп...

    • Проблема со скриптом в bash, !*! pavlinux, 20:12 , 17-Янв-18 (3)

      > Значит, не саовсем "такая же". Перл не той системы, гранаты, крон, кронтаб,  итдтп...

      [не]правильные кронтабы сами PATH прописывают.


    • Проблема со скриптом в bash, !*! Argus, 09:50 , 18-Янв-18 (4)
      >[оверквотинг удален]
      > https://duckduckgo.com/?q=cron+"PATH="+site:www.op...
      >> exec: perl: not found
      >> exec: perl: not found
      >> Такое ощущение что при запуске из cron он не может найти путь
      >> к perl. Хотя причем здесь Perl?
      > Очевидно, он вызывается по имени [без полного пути] в одном из скриптов
      > (утилит) в твоём скрипте.
      >> Причем на другой почти такой же системе все ОК.
      > Значит, не саовсем "такая же". Перл не той системы, гранаты, крон, кронтаб,
      > итдтп...

      Спасибо, добавил в /etc/crontab в переменную PATH путь /usr/local/bin
      И все заработало.

      Насчет perl - да, в скрипте cyradm есть вызов perl без полного пути.




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

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