The OpenNET Project / Index page

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



"Проблема со скриптом в bash"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Разное / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"Проблема со скриптом в bash"  +/
Сообщение от Argus (ok) on 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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "Проблема со скриптом в bash"  +/
Сообщение от Pahanivo (ok) on 17-Янв-18, 16:09 
head -n 1 /usr/local/bin/cyradm
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Проблема со скриптом в bash"  +/
Сообщение от Andrey Mitrofanov on 17-Янв-18, 16:14 
>[оверквотинг удален]
> 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?

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

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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Проблема со скриптом в bash"  +/
Сообщение от pavlinux (ok) on 17-Янв-18, 20:12 

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

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


Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Проблема со скриптом в bash"  +/
Сообщение от Argus (ok) on 18-Янв-18, 09:50 
>[оверквотинг удален]
> 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 без полного пути.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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