loading basex from a cron job
I am just getting started with basex and have been attempting to load data into a basex db via a cron job. I am running the basexclient inside my job redirecting a bxs command file to the client. this works well when i run my script off the command line by fails when run via cron. i've checked the obvious stuff (relative paths, permissions etc). Does anyone have experience loading basex via cron that could point me in the right direction. thanks /home/xxx/basex/bin/basexclient -Uxxx -Pxxx < /home/xxx/load.bxs
Is there any error message in your syslog files? How does the line in the crontab look like? -- Jens Erat [phone]: tel:+49-151-56961126 [mail]: mailto:email@jenserat.de [jabber]: xmpp:jabber@jenserat.de [web]: http://www.jenserat.de PGP: 350E D9B6 9ADC 2DED F5F2 8549 CBC2 613C D745 722B Am 11.02.2013 um 12:55 schrieb rsr <robt.s.ryan@gmail.com>:
I am just getting started with basex and have been attempting to load data into a basex db via a cron job. I am running the basexclient inside my job redirecting a bxs command file to the client. this works well when i run my script off the command line by fails when run via cron. i've checked the obvious stuff (relative paths, permissions etc).
Does anyone have experience loading basex via cron that could point me in the right direction. thanks
/home/xxx/basex/bin/basexclient -Uxxx -Pxxx < /home/xxx/load.bxs _______________________________________________ BaseX-Talk mailing list BaseX-Talk@mailman.uni-konstanz.de https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
Hi Robt, I don't know if you can use sequence of commands on crontab, while I would use "/home/xxx/basexjob.sh" instead of "cd home/xxx; ./basexjob.sh" That's is respond from looking your cron line. hope it helps, -andria On Mon, Feb 11, 2013 at 1:05 PM, rsr <robt.s.ryan@gmail.com> wrote:
no error in syslog
40 * * * * cd home/xxx; ./basexjob.sh
On 02/11/2013 06:59 AM, Jens Erat wrote:
Is there any error message in your syslog files? How does the line in the crontab look like?
______________________________**_________________ BaseX-Talk mailing list BaseX-Talk@mailman.uni-**konstanz.de <BaseX-Talk@mailman.uni-konstanz.de> https://mailman.uni-konstanz.**de/mailman/listinfo/basex-talk<https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk>
Hi!
40 * * * * cd home/xxx; ./basexjob.sh
- Which user's crontab is that line in, the user's you've been testing the script from? - `home/xxx` looks weird, do you probably mean `/home/xxx`? - What's inside your `basexjob.sh`? - - - On Andria's comments:
I don't know if you can use sequence of commands on crontab
That's fine.
while I would use "/home/xxx/basexjob.sh" instead of "cd home/xxx; ./basexjob.sh"
The script could depend on the current path. If it doesn't, I'd prefer that, too. Regards form Lake Constance, Germany, Jens -- Jens Erat [phone]: tel:+49-151-56961126 [mail]: mailto:email@jenserat.de [jabber]: xmpp:jabber@jenserat.de [web]: http://www.jenserat.de PGP: 350E D9B6 9ADC 2DED F5F2 8549 CBC2 613C D745 722B Am 11.02.2013 um 13:05 schrieb rsr <robt.s.ryan@gmail.com>:
no error in syslog
40 * * * * cd home/xxx; ./basexjob.sh
On 02/11/2013 06:59 AM, Jens Erat wrote:
Is there any error message in your syslog files? How does the line in the crontab look like?
_______________________________________________ BaseX-Talk mailing list BaseX-Talk@mailman.uni-konstanz.de https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
thanks for the replys 1 - its ok to stack multiple commands in cron, i do it all the time 2 - yes, i miskeyed my cron line is should be "40 * * * * cd /home/xxx; ./basexjob.sh" 3 - line in my bash script is "/home/xxx/basex/bin/basexclient -Uxxx -Pxxx < /home/xxx/load.bxs" On 02/11/2013 07:18 AM, Jens Erat wrote: > Hi! > >> 40 * * * * cd home/xxx; ./basexjob.sh > - Which user's crontab is that line in, the user's you've been testing the script from? > - `home/xxx` looks weird, do you probably mean `/home/xxx`? > - What's inside your `basexjob.sh`? > > - - - > > On Andria's comments: > >> I don't know if you can use sequence of commands on crontab > That's fine. > >> while I would use "/home/xxx/basexjob.sh" instead of "cd home/xxx; ./basexjob.sh" > The script could depend on the current path. If it doesn't, I'd prefer that, too. > > Regards form Lake Constance, Germany, > Jens >
Has the misspelled path been in your crontab or only your mail? Is it working now?
You didn't reply on this line:
> - Which user's crontab is that line in, the user's you've been testing the script from?
--
Jens Erat
[phone]: tel:+49-151-56961126
[mail]: mailto:email@jenserat.de
[jabber]: xmpp:jabber@jenserat.de
[web]: http://www.jenserat.de
PGP: 350E D9B6 9ADC 2DED F5F2 8549 CBC2 613C D745 722B
Am 11.02.2013 um 13:44 schrieb rsr <robt.s.ryan@gmail.com>:
> thanks for the replys
>
> 1 - its ok to stack multiple commands in cron, i do it all the time
> 2 - yes, i miskeyed my cron line is should be "40 * * * * cd /home/xxx; ./basexjob.sh"
> 3 - line in my bash script is "/home/xxx/basex/bin/basexclient -Uxxx -Pxxx < /home/xxx/load.bxs"
>
>
>
>
>
>
> On 02/11/2013 07:18 AM, Jens Erat wrote:
>> Hi!
>>
>>> 40 * * * * cd home/xxx; ./basexjob.sh
>> - Which user's crontab is that line in, the user's you've been testing the script from?
>> - `home/xxx` looks weird, do you probably mean `/home/xxx`?
>> - What's inside your `basexjob.sh`?
>>
>> - - -
>>
>> On Andria's comments:
>>
>>> I don't know if you can use sequence of commands on crontab
>> That's fine.
>>
>>> while I would use "/home/xxx/basexjob.sh" instead of "cd home/xxx; ./basexjob.sh"
>> The script could depend on the current path. If it doesn't, I'd prefer that, too.
>>
>> Regards form Lake Constance, Germany,
>> Jens
>>
>
> _______________________________________________
> BaseX-Talk mailing list
> BaseX-Talk@mailman.uni-konstanz.de
> https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
The cron job definition has been fine all along; the bash script fires fine as well, but the referenced line , below, in the script that runs the basexclient does not seem to be running. On Mon, Feb 11, 2013 at 7:56 AM, Jens Erat <jens.erat@uni-konstanz.de>wrote: > Has the misspelled path been in your crontab or only your mail? Is it > working now? > > You didn't reply on this line: > > > - Which user's crontab is that line in, the user's you've been testing > the script from? > > > -- > Jens Erat > > [phone]: tel:+49-151-56961126 > [mail]: mailto:email@jenserat.de > [jabber]: xmpp:jabber@jenserat.de > [web]: http://www.jenserat.de > > PGP: 350E D9B6 9ADC 2DED F5F2 8549 CBC2 613C D745 722B > > > > Am 11.02.2013 um 13:44 schrieb rsr <robt.s.ryan@gmail.com>: > > > thanks for the replys > > > > 1 - its ok to stack multiple commands in cron, i do it all the time > > 2 - yes, i miskeyed my cron line is should be "40 * * * * cd /home/xxx; > ./basexjob.sh" > > 3 - line in my bash script is "/home/xxx/basex/bin/basexclient -Uxxx > -Pxxx < /home/xxx/load.bxs" > > > > > > > > > > > > > > On 02/11/2013 07:18 AM, Jens Erat wrote: > >> Hi! > >> > >>> 40 * * * * cd home/xxx; ./basexjob.sh > >> - Which user's crontab is that line in, the user's you've been testing > the script from? > >> - `home/xxx` looks weird, do you probably mean `/home/xxx`? > >> - What's inside your `basexjob.sh`? > >> > >> - - - > >> > >> On Andria's comments: > >> > >>> I don't know if you can use sequence of commands on crontab > >> That's fine. > >> > >>> while I would use "/home/xxx/basexjob.sh" instead of "cd home/xxx; > ./basexjob.sh" > >> The script could depend on the current path. If it doesn't, I'd prefer > that, too. > >> > >> Regards form Lake Constance, Germany, > >> Jens > >> > > > > _______________________________________________ > > BaseX-Talk mailing list > > BaseX-Talk@mailman.uni-konstanz.de > > https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk > >
Please answer my question on which user's crontab used.
This is important as BaseX by default accesses its configuration files and data in the user's home directory, so if you're testing that script using user "xxx" but use "root"s crontab, you're writing to another home directory.
If so, either move to "xxx"s crontab (probably best way) or append some `sudo -u xxx ` either in your script or when calling it.
--
Jens Erat
[phone]: tel:+49-151-56961126
[mail]: mailto:email@jenserat.de
[jabber]: xmpp:jabber@jenserat.de
[web]: http://www.jenserat.de
PGP: 350E D9B6 9ADC 2DED F5F2 8549 CBC2 613C D745 722B
Am 11.02.2013 um 14:01 schrieb robt ryan <robt.s.ryan@gmail.com>:
> The cron job definition has been fine all along; the bash script fires fine as well, but the referenced line , below, in the script that runs the basexclient does not seem to be running.
>
>
>
> On Mon, Feb 11, 2013 at 7:56 AM, Jens Erat <jens.erat@uni-konstanz.de> wrote:
> Has the misspelled path been in your crontab or only your mail? Is it working now?
>
> You didn't reply on this line:
>
> > - Which user's crontab is that line in, the user's you've been testing the script from?
>
>
> --
> Jens Erat
>
> [phone]: tel:+49-151-56961126
> [mail]: mailto:email@jenserat.de
> [jabber]: xmpp:jabber@jenserat.de
> [web]: http://www.jenserat.de
>
> PGP: 350E D9B6 9ADC 2DED F5F2 8549 CBC2 613C D745 722B
>
>
>
> Am 11.02.2013 um 13:44 schrieb rsr <robt.s.ryan@gmail.com>:
>
> > thanks for the replys
> >
> > 1 - its ok to stack multiple commands in cron, i do it all the time
> > 2 - yes, i miskeyed my cron line is should be "40 * * * * cd /home/xxx; ./basexjob.sh"
> > 3 - line in my bash script is "/home/xxx/basex/bin/basexclient -Uxxx -Pxxx < /home/xxx/load.bxs"
> >
> >
> >
> >
> >
> >
> > On 02/11/2013 07:18 AM, Jens Erat wrote:
> >> Hi!
> >>
> >>> 40 * * * * cd home/xxx; ./basexjob.sh
> >> - Which user's crontab is that line in, the user's you've been testing the script from?
> >> - `home/xxx` looks weird, do you probably mean `/home/xxx`?
> >> - What's inside your `basexjob.sh`?
> >>
> >> - - -
> >>
> >> On Andria's comments:
> >>
> >>> I don't know if you can use sequence of commands on crontab
> >> That's fine.
> >>
> >>> while I would use "/home/xxx/basexjob.sh" instead of "cd home/xxx; ./basexjob.sh"
> >> The script could depend on the current path. If it doesn't, I'd prefer that, too.
> >>
> >> Regards form Lake Constance, Germany,
> >> Jens
> >>
> >
> > _______________________________________________
> > BaseX-Talk mailing list
> > BaseX-Talk@mailman.uni-konstanz.de
> > https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
>
>
> _______________________________________________
> BaseX-Talk mailing list
> BaseX-Talk@mailman.uni-konstanz.de
> https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
There is something in the basexclient script that causes it to fail despite my best attempts to coax it to run in a contrived cron environment. Cron job has been running all along as "xxx" user. I finally just gave up on the script and and am simply running the client out of my cron script by directly invoking the jvm myself i.e. java -cp ......... org.basex.BaseXCLient Its not the prettiest thing I have ever done, but its working. On 02/11/2013 08:09 AM, Jens Erat wrote:
Please answer my question on which user's crontab used.
This is important as BaseX by default accesses its configuration files and data in the user's home directory, so if you're testing that script using user "xxx" but use "root"s crontab, you're writing to another home directory.
If so, either move to "xxx"s crontab (probably best way) or append some `sudo -u xxx ` either in your script or when calling it.
Dear Rob, in general, BaseX runs fine when being invoked via cronjobs. Next, I just reproduced your scenario and didn’t encounter any surprises (I have no idea, though, what‘s happening inside your script).
3 - line in my bash script is "/home/xxx/basex/bin/basexclient -Uxxx -Pxxx < /home/xxx/load.bxs"
You may need to remove the last "<", as there is no need to redirect the file contents to the client: /home/xxx/basex/bin/basexclient -Uxxx -Pxxx /home/xxx/load.bxs Hope this helps, Christian ___________________________
On 02/11/2013 07:18 AM, Jens Erat wrote:
Hi!
40 * * * * cd home/xxx; ./basexjob.sh
- Which user's crontab is that line in, the user's you've been testing
the
script from? - `home/xxx` looks weird, do you probably mean `/home/xxx`? - What's inside your `basexjob.sh`?
- - -
On Andria's comments:
I don't know if you can use sequence of commands on crontab
That's fine.
while I would use "/home/xxx/basexjob.sh" instead of "cd home/xxx; ./basexjob.sh"
The script could depend on the current path. If it doesn't, I'd prefer that, too.
Regards form Lake Constance, Germany, Jens
_______________________________________________ BaseX-Talk mailing list BaseX-Talk@mailman.uni-konstanz.de https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
participants (5)
-
Andria Arisal -
Christian Grün -
Jens Erat -
robt ryan -
rsr