Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

Re: [Lug-bg] bash- >mysql=неволи


  • Subject: Re: [Lug-bg] bash- >mysql=неволи
  • From: kingfisher@xxxxxxxxx
  • Date: Wed, 7 Sep 2011 13:18:59 +0300
  • Importance: Normal

Да, започвам да стигам до извода, че е свързано с locala защото заявки без
кирилица от cron-a си минават безпроблемно.

на shell-a env:

MANPATH=/usr/man:/usr/X11R6/man
XDG_DATA_HOME=/root/.local/share
SHELL=/bin/bash
TERM=xterm
SSH_CLIENT=10.0.0.6 39026 22
QT_XFT=true
OLDPWD=/home/kingfisher
QTDIR=/opt/qt
SSH_TTY=/dev/pts/0
USER=root
COLUMNS=142
MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins
XDG_CONFIG_DIRS=/etc/xdg
PATH=/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
MAIL=/var/mail/root
HG=/usr/bin/hg
LC_COLLATE=C
PWD=/usr/local/sbin
INPUTRC=/etc/inputrc
JAVA_HOME=/usr/lib/jvm/java-6-openjdk
LANG=en_US.UTF-8
PS1=\[\e[1;31m\][\u@\h \W]\$\[\e[0m\]
LINES=44
PS3=>
PS2=>
PS4=+
HOME=/root
SHLVL=2
LESSCHARSET=latin1
XDG_CONFIG_HOME=/root/.config
XDG_CACHE_HOME=/root/.cache
LOGNAME=root
LESS=-R
SSH_CONNECTION=10.0.0.6 39026 10.0.0.1 22
XDG_DATA_DIRS=/usr/share/:/usr/local/share/:/opt/kde/share
J2SDKDIR=/usr/lib/jvm/java-6-openjdk
PKG_CONFIG_PATH=:/opt/qt/lib/pkgconfig
PROMPT_COMMAND=echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\007"
J2REDIR=/usr/lib/jvm/java-6-openjdk/jre
G_BROKEN_FILENAMES=1
_=/usr/bin/env



cron env:


SHELL=/bin/sh
USER=root
PATH=/sbin:/usr/sbin:/bin:/usr/bin
PWD=/root
SHLVL=1
HOME=/root
LOGNAME=root
_=/usr/bin/env

locale na mysql-a:
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

locale na client-a:


LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE=C
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=




> 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>
>> >
>> >> Привет на всички!
>> >>
>> >> Р&#65533;зчерпих СЃРµ РѕС‚ РєСЉРј идеи затова
реших
>> да попитам по-знаещите :)
>> >> Р&#65533;мам елементарен bash СЃРєСЂРёРїС‚ които
СЃРµ
>> обръща към mysql база за да
>> >> провери
>> >> дадена стойност.Всичко работи и си
>> мислех че лесно съм се отървал от
>> >> един
>> >> досаден приятел и му е време да
>> почерпи...пуснах го скрипта в cron-a и
>> >> Р·Р°
>> >> моя голяма изненада сутринта получих
>> на пощата писмото както си му е
>> >> реда,
>> >> но вътре стойностите бяха NULL.
>> >> Веднага се усъмних в cron-a и правата му,
>> провери ги ,но си бяха наред
>> >> Р·Р°
>> >> всеки случаи в самият скрипт
>> експортирах пътищата до командите,но
>> РЅРµ
>> >> според мен  в това проблема.
>> >> Пуснах лога-а на mysql-а да видя какво
>> пристига и всичко изглежда наред,
>> >> но резултата е NULL ако е изпълнено под
>> cron-a, като го пусна на ръка си
>> >> работи, като копирам от лог-а на mysql-a
>> заявката вътре в  mysql-а пак
>> >> СЃРё
>> >> работи.
>> >> Р&#65533;нтересното Рµ че РЅРµ работи
заявката
>> дори ако изпълня като 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
> _______________________________________________
> Lug-bg mailing list
> Lug-bg@xxxxxxxxxxxxxxxxxx
> http://linux-bulgaria.org/mailman/listinfo/lug-bg
>


_______________________________________________
Lug-bg mailing list
Lug-bg@xxxxxxxxxxxxxxxxxx
http://linux-bulgaria.org/mailman/listinfo/lug-bg



 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.