Проблема со скриптом в bash

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Argus
проходил мимо
Сообщения: 1
Зарегистрирован: 2018-01-17 15:47:12

Проблема со скриптом в bash

Непрочитанное сообщение Argus » 2018-01-17 15:50:03

Привет всем.
Есть простенький скрипт на 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

FiL
ст. лейтенант
Сообщения: 1351
Зарегистрирован: 2010-02-05 0:21:40

Проблема со скриптом в bash

Непрочитанное сообщение FiL » 2018-01-23 0:26:44

perl при том, что его использует cyradm

пропишите PATH в crontab.


Вернуться в «SHELL»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость