Announcing: elog2sql
elog2sql was created to help translate logbooks created by the program
``elog'' from the native elog flat file format to a MySQL database. I had a
need to have the elog data in a database, and it appears from the forum that
several others had a similar need.
I created a set of perl scripts that will allow the translation of elog
logbooks into a MySQL database. The design and implementation of these
scripts are a simple one, and allow the one-time copying of a set of logbooks.
The elog2sql toolkit consists of two scripts. The first script, parsecfg.pl,
reads a elogd.cfg, and creates a sql file that will create a set of db
tables corresponding to elog logbooks. The second script, parselog.pl, takes
a set of elog logfiles, and creates a sql file that will enter the logbook
data into the database. The result is a copy of the elog logbook that can
used as desired inside the framework of MySQL. Attachments are handled by
inserting an entry of the attachment name into an seperate attachment table.
This allows multiple attachments per entry.
You can download the elog2sql program archive at
http://www.davidfannin.com/elog2sql/elog2sql.tar.gz . It contains the
scripts and basic documentation. You can read the man page at
http://www.davidfannin.com/elog2sql/index.html
email for questions or comments. |
Joe,
Run the command
`limit' (if you are running tcsh) and `ulimit -a' if you are running bash
(these are command line programs that will tell you the resources you are
allowed to use. Look at filesize, datasize, and stacksize - these need to be
8M or so)
You can increase these by typing, e.g.,
limit filesize unlimited
limit datasize unlimited
limit stacksize unlimited
(the equivalent command for bash are `ulimit -f unlimited', `ulimit -d
unlimited' and `ulimit -s unlimited', without the quotes)
which will increase the limits to the max imposed by the administrator.
If that doesn't increase your limits, you will have to contact the admin to
have them raised system wide.
If you are the administrator/sole user, you can set them to the max in the file:
/etc/rc.common.
I have included the following at the end of the file:
##
# Enable coredumps if requested.
##
if [ "${COREDUMPS:=-NO-}" = "-YES-" ]; then
ulimit -c unlimited
ulimit -d unlimited
ulimit -s unlimited
fi
and I have put this in /etc/hostconfig
COREDUMPS=-YES-
Hope this helps - if that doesn't fix it, sorry!
Sridhar
> I have been trying to build and run elog under Mac OS X 10.2.6, without
sucess. I
> understand that this is not one of the 'supported' platforms, but I hope
that there is someone
> here who might know the work-around to my problem.
>
> I've tried building elog 2.2.5, 2.3.6, 2.3.7, and 2.3.8. I've tried using
the compiler that comes
> in the Mac OS X 10.2 box, as well as the gcc-based compiler supplied in
Apple's Dec 2002
> developer update (gcc 3.1), and the June '03 update as well (gcc 3.3).
>
> elog builds without error in all cases I tried.
>
> When I run it, it will correctly serve the demo notebook. However, when the
user clicks on the
> test message to display it in full, there is a seg fault.
>
> I suspect that the trouble might be with something defined in time.h.
>
> I've run it in gdb, and the result is appended to this message. This is for
gcc 3.3 and elog
> 2.3.8.
>
>
> I would greatly appreciate any hints or suggestions.
>
> Cheers, Joe
>
> ---
>
> [satsuma:~/Documents/elog_build/elog-2.3.8] jgiaime% gdb ./elogd
> GNU gdb 5.3-20030128 (Apple version gdb-282) (Fri Jun 13 03:33:07 GMT 2003)
> Copyright 2003 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB. Type "show warranty" for details.
> This GDB was configured as "powerpc-apple-darwin".
> Reading symbols for shared libraries .. done
> (gdb) run
> Starting program: /Users/jgiaime/Documents/elog_build/elog-2.3.8/elogd
> Reading symbols for shared libraries . done
> Indexing logbook "demo" ... ok
> Server listening on port 8080...
>
> Program received signal EXC_BAD_ACCESS, Could not access memory.
> 0x00005870 in el_retrieve (lbs=0x1, message_id=50, date=0xbfff2500 "demo",
> attr_list=0x0, attrib=0x365620, n_attr=1, text=0xbfff2280 "1", textsize=0x1,
> in_reply_to=0x0, reply_to=0x0, attachment=0x0, encoding=0x0, locked_by=0x0)
at src/
> elogd.c:2775
> 2775 {
> (gdb) up
> #1 0x0001d9b4 in interprete (lbook=0x1 <Address 0x1 out of bounds>,
path=0xbfff2280
> "1") at src/elogd.c:12279
> 12279 show_elog_message(lbs, dec_path, command);
> (gdb) up
> #2 0x0001db10 in decode_get (logbook=0xbffff340 "demo", string=0x3a300a
"1") at src/
> elogd.c:12325
> 12325 interprete(logbook, path);
> (gdb) up
> #3 0x00020080 in server_loop (tcp_port=836736, daemon=-1073732640) at src/
> elogd.c:13398
> 13398 decode_get(logbook, p);
> (gdb) up
> #4 0x00021134 in main (argc=1, argv=0xbffff850) at src/elogd.c:13832
> 13832 server_loop(tcp_port, daemon);
> (gdb) up
> Initial frame selected; you cannot go up.
> (gdb) |