Страница 1 из 1

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

Добавлено: 2018-01-17 15:50:03
Argus
Привет всем.
Есть простенький скрипт на 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

Добавлено: 2018-01-23 0:26:44
FiL
perl при том, что его использует cyradm

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

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

Добавлено: 2019-04-21 0:18:20
QweЯty
Подскажите, как передать директорию запуска в переменную??

есть N штук однообразных директорий dirs_1 dirs_2 dirs_n-1 dirs_n
в них скрипты тоже имеют однообразное название run.sh
при скрипте, который их попеременно вызывает:

Код: Выделить всё

#!/usr/local/bin/bash

START='1'
END='37'


for i in $(seq ${START} ${END})
do

/usr/local/bin/bash /dirs_$i/run.sh

done
при запуске этого скрипта, скриптам run.sh передается папка запуска не dirs_n, а откуда запущен общий скрипт... как можно поменять эту переменную? чтобы скрипты отрабатывали корректно относительно своей директории

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

Добавлено: 2019-04-21 17:25:27
QweЯty
изменить\удалить не дает....
решил проблему, просто cd dirs_$i а потом запуск скрипта:

Код: Выделить всё

for i in $(seq ${START} ${END})
do
cd dirs_$i
/usr/local/bin/bash /dirs_$i/run.sh
cd ..
done
все работает все довольны