Does this site look plain?

This site uses advanced css techniques

Evolution Logo

When iSystems releases new Evolution software, the SYSTEM database must be restored into the database servers, and though the version of this database is shown when logging into Evolution itself, admins on the Linux DB servers sometimes may wish to check the version as well.

This trivial script runs on the Linux system and queries the SYSTEM database directly, providing the version information. This is most useful for those doing remote support (when getting on a desktop just for that) may be more than a click awway, but it might be helpful to anyone.

It can be run by a root or non-root user alike, producting output in SQL query format:

$ evo-sysver

MAJOR_VERSION MINOR_VERSION PATCH_VERSION BUILD_VERSION
============= ============= ============= =============
            9             0             4            60

This corresponds to SYSTEM database 9.0.4.60.

Installing

The script itself is very simple, and can be installed directly from the Linux system into the traditional /usr/local/bin/ directory. We normally use the wget utility for this:

# cd /usr/local/bin

# wget http://www.unixwiz.net/evo/evo-sysver

# chmod a+x evo-sysver

If the EUSER password is other than the typical default, edit the script to reflect the local needs, then save the file.

How it works

This script runs the isql program to make an SQL query on the SYSTEM database. Most Evolution files (SYSTEM, S_BUREAU, TMP_TBLS, CL_ files) contain a VERSION_INFO table, and this merely selects all the items in it — there should only be one row.

evo-sysver script contents
#!/bin/sh
#
#	This trivial program queries the local SYSTEM database and
#	reports the version number.
#
#	Change the EUSER password to taste
#

export PATH=/opt/firebird/bin:$PATH

isql -user EUSER -pass pps97 localhost:/db/evolution/SYSTEM.gdb <<EOF
select * from version_info;
EOF

This program is entirely readonly and can be run anytime, including during production.

Checking other systems

By default, this program queries the local database server for this information, but for customers with multiple DB servers, the SYSTEM database only appears on one of the servers.

As a matter of convenience, users may wish to query this from the "other" servers, and this can be done easily by replacing localhost with the hostname or IP address of the DB server with the system DB.

evo-sysver script (partial)
...
isql -user EUSER -pass pps97 dbserver2:/db/evolution/SYSTEM.gdb <<EOF
select * from version_info;
EOF
...

This requests that the isql query be made to the network host in question rather than the local machine, and in this way, this functionality can work across the entire Evolution herd of DB servers.


First published: 2007/07/11