Re: [Lug-bg] bash- >mysql=неволи
- Subject: Re: [Lug-bg] bash- >mysql=неволи
- From: Peter Pentchev <roam@xxxxxxxxxxx>
- Date: Wed, 7 Sep 2011 12:36:19 +0300
On Wed, Sep 07, 2011 at 12:23:59PM +0300, kingfisher@xxxxxxxxx wrote:
[всъщност това го беше написал Георги...]
> > От cron като изпълняваш скриптове, разликата е в обкръжението, разните
> > променливи не са дефинирани.
> >
> > Пусни env от cron и от нормална конзола и виж какво е различно, вероятно
> > там
> > някъде се развалят нещата.
> >
> > Скелета
>
> Пробвах с eval $CMD,но не става.Мен повече ме
> притеснява че заявката си идва нормална
> поне в лога на mysql-a когато идва от cron-a.
> Пробвах и заявка без променливи твърда
> дата и пълен път до /bin/echo и резулата
> е същият.
> Сега тествах на друго дистро на едно
> виртуално Убунто с друга версия на
> mysql там като копирах от лога заявката и я
> поставих направо в mysql-a наистина ми даде
> резултат NULL.
>
> Това са пътищата на cron-a:
>
> SHELL=/bin/sh
> USER=root
> PATH=/sbin:/usr/sbin:/bin:/usr/bin
> PWD=/root
> SHLVL=1
> HOME=/root
> LOGNAME=root
> _=/usr/bin/env
>
> А това на shell-a:
> /bin:/usr/bin:/sbin:/usr/sbin:/usr/X11R6/bin:/opt/bin:/usr/local/sbin:/opt/kde/bin:/usr/bin/vendor_perl:/usr/bin/core_perl:/opt/qt/bin
Не става дума за пътищата. Както ти каза Георги, пусни командата "env"
(без параметри, може и "printenv") от cron и от твоя шел, да видим дали
ще има някакви разлики.
Поздрави,
Петър
--
Peter Pentchev roam@xxxxxxxxxxx roam@xxxxxxxxxxx peter@xxxxxxxxxxxxxxx
PGP key: http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553
I am the meaning of this sentence.
> > 2011/9/7 <kingfisher@xxxxxxxxx>
> >
> >> Привет на всички!
> >>
> >> Изчерпих се от към идеи затова реших да попитам по-знаещите :)
> >> Имам елементарен bash скрипт които се обръща към mysql база за да
> >> провери
> >> дадена стойност.Всичко работи и си мислех че лесно съм се отървал от
> >> един
> >> досаден приятел и му е време да почерпи...пуснах го скрипта в cron-a и
> >> за
> >> моя голяма изненада сутринта получих на пощата писмото както си му е
> >> реда,
> >> но вътре стойностите бяха NULL.
> >> Веднага се усъмних в cron-a и правата му, провери ги ,но си бяха наред
> >> за
> >> всеки случаи в самият скрипт експортирах пътищата до командите,но не
> >> според мен в това проблема.
> >> Пуснах лога-а на mysql-а да видя какво пристига и всичко изглежда наред,
> >> но резултата е NULL ако е изпълнено под cron-a, като го пусна на ръка си
> >> работи, като копирам от лог-а на mysql-a заявката вътре в mysql-а пак
> >> си
> >> работи.
> >> Интересното е че не работи заявката дори ако изпълня като root със su -
> >> root -c /usr/sbin/somescript.sh
> >> Пробвах го и с ssh -l root 10.0.0.1 /usr/sbin/somescript.sh от друга
> >> машина и пак не работи дава стойности NULL като в лога на mysql-a идва
> >> нормална заявка ето и примерно какво правя:
> >> QRY="SELECT SUM(GoodsTradeInSum)FROM (SELECT '$curtime' AS ReportDate,
> >> goods.Name AS GoodsName, SUM(IF(ISNULL(operations.Qtty *
> >> operations.Sign),
> >> 0, operations.Qtty * operations.Sign)) AS StoreAvailableQuantity,
> >> goods.PriceIn AS GoodsTradeInPrice, SUM(IF(ISNULL(operations.Qtty *
> >> operations.Sign), 0, operations.Qtty * operations.Sign)) * goods.PriceIn
> >> AS GoodsTradeInSum FROM ((((objects, goods) LEFT JOIN operations ON
> >> (objects.ID = operations.ObjectID AND goods.ID = operations.GoodID))
> >> LEFT
> >> JOIN goodsgroups ON ABS(goods.GroupID) = goodsgroups.ID) LEFT JOIN
> >> objectsgroups ON ABS(objects.GroupID) = objectsgroups.ID) LEFT JOIN
> >> vatgroups ON goods.TaxGroup = vatgroups.ID WHERE (operations.Date <=
> >> '$curtime 00:00:00') AND (goods.Name LIKE concat('%', 'ц-ри', '%'))
> >> GROUP
> >> BY goods.Code, goods.Name, goods.ID, goods.Measure1, objects.ID,
> >> objects.Name, goods.PriceIn, vatgroups.VATValue) as T"
> >>
> >> CMD="mysql -h $HOST -u $DB_USER -p$DB_PASS -D$DB"
> >>
> >>
> >> echo `$CMD << eof $QRY eof` > $LOGtmp
Attachment:
signature.asc
Description: Digital signature
_______________________________________________
Lug-bg mailing list
Lug-bg@xxxxxxxxxxxxxxxxxx
http://linux-bulgaria.org/mailman/listinfo/lug-bg
|