| 
 | Linux in the LibraryWhat can it do for you? | 
 | 
A presentation at the 1999 CODI conference
February 10-12, 1999
Seattle, Washington
This web page originated from a presentation I gave at the
1999 Customers of Dynix Inc. (CODI) conference, but may be of
interest to anyone interested in what Linux can do at a Library,
regardless of the Automation System in place. Although I have
attempted to automate some of the routine Dynix system
administration tasks, Linux is not "tied" to Dynix in
any special way. Indeed, even with our Dynix server unavailable
we can provide access to CD-ROM databases and the Internet to our
patrons.
It might be of interest to you even if you don't work for a Library,
but are curious about what Linux can do. This is by no means a
complete list of all the things that are possible, just some of
the things we've used it for.
Comments, suggestions & opinions are welcome.
Please send them to: Eric Sisler
(esisler@cityofwestminster.us)
Index
Although everything listed below is on this page, I've included the index
in the event you want to look at a particular section or just want to know what
you're getting yourself into.  ;-)  Enjoy!
 
	- Title & overview
- Introduction
- How did I get started with Linux?
- Why did I recommend Linux?
- Library facility networks - College Hill Library
- Library facility networks - 76th Avenue Library
- Library facility networks - Kings Mill Library
- What is Linux?
- What is a Linux distribution?
- What distributions are available?
- What comes with a Linux distribution?
- Will Linux work with other operating systems?
- Choosing Linux - direct costs
- Choosing Linux - indirect costs
- Choosing Linux - stability & performance
- Choosing Linux - support
- Choosing Linux - updates & source code
- What do we use Linux for?
- Domain Name System (DNS)
- Samba (network file & print services)
		- domain logons & scripts
- CD-ROM databases served
- server shares
- public PC administration & security
- network printers
- Apache (Internet web server)
- Squid (Internet object cache)
- DHCP (Dynamic Host Configuration Protocol)
- Automating tasks with bash, expect & cron
- Future projects at the Library using Linux
- Sources & further reading
- Thank you's
- Dedication
Introduction - who am I, anyway?
I am Eric Sisler, Library Computer Technician for the City of
Westminster. I have worked for the library for 13+ years in
various jobs: page, circulation clerk, processor &
cataloger in technical services. I am currently part of
Automation Services, providing computer and network support to 3
facilities.
Index
How did I get started with Linux?
In 1996, we were in the process of moving our Dynix system
from a shared HP-UX box to its own HP-UX box. I was just
beginning to learn more about Unix in general and wanted
something I could use as a learning tool without the worry of
destroying it and Linux fit the bill. A distribution could be had
for around $50 and it would run on my home PC. We were also in
the process of planning the automation needs for a new library
facility. I began thinking about what kind of services we wanted
to provide to library patrons and how we might go about doing so. I
knew we would be providing some CD-ROM databases, so I began
experimenting with Linux as a CD-ROM server, discovering it
was easily capable of much more. Like many who like to tinker
with computers, I have been accused of trying to build the
Internet in my home out of spare parts!
Index
Why did I recommend Linux?
Obviously, I felt it was the best solution to our needs, which
initially included serving some CD-ROM databases, a DNS server
and some basic file & print services. Seemingly on its own,
this list has grown to include many other services: more
file/print services, domain logons & scripts, MARC record
storage & retrieval, public PC administration & security,
staff & public web pages, Internet object caching, DHCP,
shell scripting and others I've probably missed.
I also felt limited by other Network Operating Systems (NOS's)
for a variety of reasons:
	- Knowledge
 Although I wasn't (and still am not) a Unix guru, what I
	had learned intrigued me and I could see the
	possibilities Linux had to offer. My knowledge of other
	operating systems was also limited and I wasn't
	interested in trying to learn more about Unix and other
	OS's at the same time - I had enough to do already.
    - Cost
 We had a limited computer budget to work with and every
        dollar spent on the server OS was one less dollar
        available for staff/public PC hardware & software.
    - Services available
 Linux could do "out of the box" everything I
        wanted and a whole lot more, something I was unable to
        find with other operating systems - the services either
        weren't available or were only available as an add on
        (read: added cost).
    - Reliability / performance
 Dynix running on HP-UX had always proven stable & a
        good performer, and all indications were the Linux would
        perform the same way.
If I had to do it all over again, would I make the same
decision? Absolutely! I can't imagine providing all the services
currently available as efficiently & reliably any other way.
Index
Library facility networks -
College Hill Library
College Hill Library is a joint project between the City of
Westminster and Front Range Community College. The 76,000 square
foot facility was opened in April of 1998 and is run by both
agencies, a story in itself that is beyond the scope of this
document. Dynix & Internet access are via a dedicated T-1
circuit and there are 2 Linux servers at College Hill: Gromit
& Preston.
	- Gromit
- Gromit is the primary server for the facility, providing all
	the services described later in this document. The original
	Gromit hardware consisted of the following:
	
		- Compaq Deskpro 2000; 200MHz Pentium II with 64Mb RAM,
		8.5Gb hard drive space (IDE), 1 internal CD-ROM drive,
		4-drive external CD-ROM tower, 4mm DDS-2 tape drive &
		UPS.
	- Gromit was moved to new hardware in December of 1998, partly
	to add drive space, partly to gain a little more speed, but mostly
	because Linux had more than proven itself and we wanted to
	reduce the chance of hardware failure by moving it to
	"server" class hardware:
	
		- HP NetServer LH Pro; dual 200MHz Pentium Pro with 256Mb
		RAM, 22.5Gb hard drive space (SCSI), 1 internal CD-ROM
		drive, 4mm DDS-2 tape drive & UPS.
	- Why the big difference in hardware? Partly because the LH Pro
	is a discontinued model and we were able to get a good price on
	it. Initially Gromit was built from "desktop" class
	hardware because it was available, I had done much of the setup
	at home and I wanted to prove to myself (and others) that Linux
	was capable of what I wanted to do with it, even on
	"regular" hardware. If Linux failed to meet my (or
	others) expectations I could re-use the hardware for a different
	OS. Happily, Linux has met and greatly exceeded my expectations.
	Two big reasons that the new hardware seems much faster are the
	additional RAM and SCSI hard drives. As with any server OS, RAM
	and fast disk drives make a big difference.
	- Preston
- Preston is a "recycled" Gateway 486/66 with 16Mb of
	RAM, 600Mb disk space (IDE), 1 internal CD-ROM drive & a UPS.
	It provides some very limited access between the library &
	college networks. Eventually it will become a full-blown firewall
	between the two networks and we will be providing access to some
	of our CD-ROM databases through it.
	- College Hill Library PC configuration:
- 
	
		- 46 staff PC's
- 34 public PC's
- 1 instructor's workstation (Library instruction classroom)
- 22 student workstations (Library instruction classroom)
- 8 network printers
 
Index
Library facility networks - 76th
Avenue Library
76th Avenue library is the former main library for the City of
Westminster. Originally built in 1961 and remodeled several
times, it is 6,000 square feet in size and has a fractional T-1
circuit (256Kb) for Dynix & Internet access. It has 1 Linux
server, named Rust, that provides many of the same services found at
College Hill. One reason for giving 76th Avenue its own server was
the small data circuit size. 256Kb is fine for Dynix &
Internet access, but proved a little slow for serving CD-ROM
databases from the College Hill server. The other reason was to
provide some independence between the facilities - a downed data
circuit or server at one location does not affect the other.
	- Rust
- Rust is a Compaq DeskPro
	486/66 (with Pentium 90 overdrive chip), 16Mb RAM, 1.5Gb hard
	drive space (IDE), 2 internal CD-ROM drives and UPS. It is
	scheduled to be upgraded the first part of this year, mostly to
	provide more hard drive space and extra memory.
	- 76th Avenue Library PC configuration:
- 
	
		- 7 staff PC's
- 4 public PC's
- 1 network printer
 
Index
Library facility networks - Kings
Mill Library
Kings Mill is a small (4,500 square feet) branch library,
built in 1978. It has a 64Kb frame relay circuit for Dynix &
Internet access and no Linux server at this time. Once the server
at 76th Avenue is upgraded, the old hardware will likely become
the server for Kings Mill.
	- King's Mill Library PC configuration:
- 
	
		- 4 staff PC's
- 3 public PC's
 
By the way - if you're wondering about the naming scheme
for our Linux servers, with the exception of Rust they're all named
after characters from Nick Park's excellent claymation series
"Wallace and Gromit".  You can find out more about the series
here.
Index
What is Linux?
	- The Linux Kernel
- When you talk about Linux, you're really talking about
	the Kernel itself - the core software that allows other
	software to "talk" to the hardware. Linux was
	created by Linus Torvalds, then a student at the
	University of Helsinki, Finland. It is an open-source
	Unix clone that aims at POSIX compliance. It is developed
	and maintained by many Unix programmers & wizards
	across the Internet. 
	- GNU General Public License (GPL) software &
	utilities
- Linux would not exist without the many drivers,
	compilers, utilities, services & programs ported from
	the Free Software Foundation (FSF) under the GPL.
	- Berkeley Unix (BSD)
- Linux also takes advantage of many Internet daemons &
	utilities ported from BSD, one of the
	original flavors of Unix.
	- Commercial software from vendors
- Many vendors are beginning to port their software to
	Linux or write new software for Linux.  Some distributions
	may include commercial software and/or demos.
	- A (perhaps bad) analogy using Windows might be
	this:
- Windows = Linux kernel
 Windows drivers, utilities & software = GNU & BSD
Index
What is a Linux distribution?
When most people talk about Linux, what they're really talking
about is a Linux distribution, which typically comes with the
following:
	- A stable version of the Linux kernel
- Although experimental versions of the kernel are usually included
	with a Linux distribution, production servers are normally
	installed with a stable kernel.
	- A collection of frequently used services &
	software
- As a full-featured Unix, Linux comes with just about any Internet
	or network service you can think of. Most distributions install
	many of these by default using some kind of package management
	software.
	- Installation guide, documentation & media
- In addition to the actual installation instructions, the installation
	guide usually contains general information about Linux, the particular
	distribution you're installing, a basic user's guide and some essential system
	administration information.  The installation media is usually a boot
	floppy and 1 or more CD-ROM's.
	- Commercial software
- Some Linux distributions come with commercial software as an added
	feature, or demo versions of the full package.
Index
What distributions are
available?
There are a number of Linux distributions available.
This is by no means a complete list,
but some of the "better-known" ones include:
Red Hat
This is our distribution of choice for the library.
Slackware
The distribution I started with. Although still a good
distribution, it can be a little tough to get started with.
Caldera
Debian GNU/Linux
Linux Pro
S.u.S.E.
TurboLinux
Index
What comes with a Linux
distribution?
As a full-fledged Unix clone, Linux comes with everything you'd expect,
and then some:
	- Networking protocols including TCP/IP, PPP, IPX, ethernet and more.
- Many TCP/IP applications & services including telnet, samba,
	apache, squid, dhcp, ftp, e-mail (pop, imap & smtp), news, nfs, dns.
- Languages, compilers & scripting languages like C, C++, Fortran,
	Pascal, assembly, BASIC, perl, python, Tcl/Tk, lisp, scheme, expect and others.
	
- The X Windows environment, including several desktop managers.
- Commercial software and/or demos of full products.
- Many more too numerous to list.
Index
Will Linux work with other operating systems?
Because Linux "speaks" many other network protocols, it works
well with other operating systems, including:
	- DOS
- Windows 3.x
- Windows 95 / NT
- Novell
- OS/2
- Macintosh
- other "flavors" of Unix
Index
Choosing Linux - direct costs
	- Hardware
- Linux will run on nearly any of Intel's family of x86 processors,
	from the 386 to the Pentium II  and beyond.  It also runs on a variety
	of other architectures.
	- Operating System Software
- Most Linux distributions can be had for around $50 or for free if
	you want to download them from the Internet. Other operating systems
	seemed to vary wildly depending on what (if any) discounts we qualified
	for and what services we wanted to provide.  Rather than give incomplete
	or misleading information, I encourage you to contact your software
	vendor directly.
	- Commercial backup software
- Although the release of RedHat we started with (5.0) came with the
	"personal" edition of EST's excellent BRU2000, we opted to purchase the
	commercial version which comes with an optional renewable support contract
	for around $300. The commercial version includes free upgrades and supports
	network backups, allowing several servers to share 1 tape drive.
	- Licensing
- With the exception of the commercial backup software, all other services currently
	running on our Linux servers have unlimited user licenses.  Again, other OS's licensing
	costs varied by the number and type of services provided.
	- Approximate cost per client PC = $2.89
- This is the total cost per PC, not including any software installed on each PC,
	which you'd need regardless of the server OS.  Since we have more staff & users than
	PC's, the total cost per user account is even less.  I calculated the cost using the
	following: $350 (RedHat CD + backup software) / 121 PC's (58 staff + 63 public) =
	$2.89. As the number of PC's/users increases, the cost per PC/user decreases.
Index
Choosing Linux - indirect costs
	- Services
- Most of the services we wanted to provide were available
	"out-of-the-box". Those that didn't come with the
	distribution were available from the Internet. Other network OS's
	either didn't provide all the services we wanted or were only
	available at an additional cost.
	- Time
- Yes, it is Unix and it does have a steep learning curve, but I
	felt it was well worth the effort. If you already know one flavor
	of *ix, learning another isn't that difficult and since I was
	already trying to learn Linux to teach myself more about Unix in
	general, this gave me a practical reason for doing so.
	- System administration
- With servers at 3 different locations, remote administration is a
	must, and Linux fits the bill nicely. All administration can be
	done remotely using telnet or dial-in access and the command line
	interface (CLI), although there are some graphical (GUI)
	administration tools as well. Most people prefer one or the other
	for system administration, you can read my musings on the subject
	here if you'd like.
	- Starting & stopping services
- Nearly all services can be stopped & started as necessary
	without rebooting the server. I have updated software, applied
	patches, changed configuration files, updated/recompiled the
	kernel and even rebooted the server remotely, all with just shell 
	(telnet) access. In my experience a well configured server
	running on decent hardware generally requires little
	administration.
Index
Choosing Linux - stability & performance
	- Stability
- Linux has proven to be a very stable server OS. The 
	old Gromit
	ran continuously from February to December 1998 with only 3
	interruptions: an extended power outage, a physical move of the
	server and to install some additional hardware. It currently
	holds the "record" for server uptime at the Library -
	125 days without a reboot!
	- Rebooting
- There are only a few circumstances when Linux must be
	rebooted: after upgrading/compiling a new kernel or
	during hardware replacement/installation. While
	frequent rebooting may be a necessary evil on the client
	end, I feel server reboots should only be necessary due
	to hardware failure/installation or operating system
	(kernel) upgrades.
	- The kernel & other processes
- Very few things can crash the Linux kernel, faulty
	hardware being the #1 culprit. I have had services crash,
	generally due to misconfiguration on my part (oops!), but
	fixing the configuration and restarting the service is
	all that's been necessary. Nearly all processes &
	services can be stopped and restarted without rebooting -
	even networking if done correctly.
	- Performance
- In addition to being very stable, Linux also performs
	well on most hardware. It uses the CPU and RAM
	efficiently, has one of the fastest TCP/IP
	implementations available and frequently outperforms
	other NOS's on the same or lesser hardware.
Index
Choosing Linux - support
One thing I frequently run across concerning Linux is the
"lack" of support. Generally what this means is
"the lack of someone I can call and pay lots of money to who
may or may not be able to solve my problem." Although some
companies are beginning to offer commercial support, to quote an
anonymous Linux user - "There's a
bordering-on-clinically-interesting level of support from the
Linux community at large." The lack of commercial support
has never been an issue for us. My best sources for support and
information include:
    - Program documentation & man pages
- Howto's / FAQ's
- Web pages
- Books, books & more books
- Listservs e-mail & newsgroups
- The Linux community
For a list of some Linux resources, click here.
Index
Choosing Linux - updates & source code
	- Software updates
- Software updates, especially security related ones, are released in a
	timely manner (sometimes days or hours) via the Internet.
	- Software package with RPM
- RPM is a software management utility created by RedHat that has since been
	adopted by other distributions of Linux.  It makes software installation,
	upgrades and even removal quite easy. Other distributions that do not use
	RPM generally have their own software management utility.
	- Source code
- Source code is available for all open-source, GPL'ed software included with
	a distribution.  This can be useful if you discover a bug, want to make
	changes or just practice your programming skills.
Index
What do we use Linux for?
Ok, enough about all that. Let's look at what we use Linux for
at the Library.
Index
DNS
The Domain Name System or DNS is the Internet
"phonebook" of hostnames & IP addresses. Anytime
you connect to a computer on the Internet using its host address,
DNS provides the translation from the hostname to the
corresponding IP address.
	- Local DNS
- We provide hostnames for all our PC's and other networked
	equipment to make configuration & troubleshooting easier. If
	you have or are considering getting your own domain, Linux can be
	an inexpensive way to administer it.
	- Remote DNS resolution
- We have multiple DNS servers for speed & redundancy.
Index
Samba
Samba provides file & print services, much like Windows NT
or NetWare. It supports domain logons, logon scripting and a
"browse" list of available shares. There are many
access control options, both system-wide and share specific.
	- Server requirements
- The server requirements for samba are simple - TCP/IP networking
	and the samba software for most clients.
	- Client requirements
- All of our client machines are currently Windows 95, and
	the requirements for them are simple as well - TCP/IP networking
	(usually the MS TCP/IP stack) and the MS "Client for
	Microsoft networks" client, both of which are included with
	Windows 95. The NetBEUI protocol is NOT needed or helpful.
	- Samba - domain logons & scripts
- Samba supports domain logons by username or machine name. Logon
	scripts are written as DOS style batch files, with the initial
	script often calling many other scripts. There are currently around
	150 user accounts and rather than having to change each script as services
	are added the initial script calls other scripts as needed. If a particular
	service needs to be changed, only that script has to be edited,
	and all users will be updated the next time they reboot.
	Logon scripts typically perform the following functions:
	- Setting the client PC's time
- Mapping driver letters to shares for staff & public PC's
- Updating the Dynix PAC for Windows configuration (.plc) file
- Updating Netscape's configuration file, clearing the cookie file and cache 	directory
- Updating Norton AntiVirus definition files
- Updating various other configuration files, including the registry
	- Samba - CD-ROM databases currently served
- We provide access to a number of CD-ROM databases to patrons
	& staff, including:
    - Books in Print+ w/ reviews
- Baker & Taylor module 2: title source
- Facts on File World News
- Library of Congress Cataloger's Desktop
- Libraries' Unlimited LC-Dewey conversion tables
- OCLC Dewey for Windows
	
	- Although we have a number of multimedia PC's available in the
	children's area, multimedia & DVD CD-ROM's are not served
	from the network as they tend to be bandwidth hogs.
	- Samba - server shares
- A "share" is merely a directory on the server that is accessable to client
	PC's, via a mapped drive letter or UNC (Universal Naming Convention) path.
	The CD-ROM databases are shares as well, but read-only ones.
	
		- Domain logon scripts
- Although the logon scripts can be edited from the Linux shell
		prompt, we found it was just as easy to provide access to all
		the scripts & configuration files using Samba. Editing a
		script is as simple as starting a text editor like notepad
		or wordpad and opening the file you want to change.  Changes to
		other configuration files are made in much the same way.
	
		- Configuration files
- Not all public PC's have access to the full range of
		services provided.  Since the configuration files are stored
		and distributed from the server, making changes to what's
		available on a specific PC is usually as easy as editing its
		logon script and having a staff member reboot it.
	
		- Software & ghost image storage space
- Also housed on the server are frequently installed software
		packages and ghost images of all staff & public PC's. Ghost
		is a drive imaging utility that takes a "snapshot" of a
		hard drive or partition and stores it all in one file. This
		allows us to easily restore a public machine that has been
		trashed and install periodic updates to all staff & public
		PC's. Rather than having to manually install software updates to
		each machine, the hard drive is reformatted and the new ghost
		image installed. This allows the installation to be clean and
		guarantees that each machine will at least start out with the
		same configuration.
	
		- Staff home directories
- Staff members have their own home directory on the
		server where they can store their private documents. The files
		are backed up every night and are available from most any PC they
		happen to be using. This eliminates the need to backup staff
		PC's, which we lack the staff and time to do. Staff & public
		PC's have their software updated periodically using the utility
		ghost, mentioned in the previous paragraph.
	
		- Group directories for projects
- In addition to private directories, there are group directories
		where staff can store documents that need to be accessible by
		others. 
	
		- Meeting room schedule pages
- College Hill's meeting room schedule is available
		to all via a web browser, but to update the schedule
		we use a mapped share and an html editor.
	
		- MARC record storage/retrieval
- Dynix provides a way for our catalogers to load MARC (MAchine
		Readable Cataloging) records into the system, the only problem
		is it uses FTP to get the records. Rather than making each
		cataloger's PC an FTP server, the records are stored
		via Samba on the Linux
		server and Dynix FTPs them from one central location.
Samba - public PC administration & security
	
		- WinSelect security software.
- WinSelect provides a way to lock down the Windows 95
		desktop and most applications, as well as control access to
		printers, the start button and other normally accessible programs
		& settings on the Windows desktop. The software is installed
		locally on each PC but the configuration file is updated from the
		server during the network logon process.
	
		- Dynix PAC for Windows
- Public Access Catalog (PAC) for Windows is a front-end menu
		system for Windows 95/NT. It provides a graphical user interface
		for public users and is used to search the Dynix catalog and run
		other applications. We use it on all our public PC's,
		giving patrons access to a variety of services - the online
		catalog, CD-ROM databases, Internet reference products and more. As
		with WinSelect, the configuration file is updated from the server
		during the network logon process. Although we do not use it as a
		front-end menu on the staff PC's, it is available on those PC's
		and updated in the same way.
	
		- Netscape
- We use Netscape as our browser of choice for those PC's that are
		allowed to access the Internet. In addition to using WinSelect to
		lock down many of Netscape's menu items, the main configuration
		file (prefs.js) is updated, the cookies file (cookies.txt) is
		cleared and all items in the cache directory are removed, again
		during the logon process.
	- Samba - network printers
- Samba also provides access to 9 network printers. Access to these
	printers can be configured by user login, group or individual PC.
Index
Apache
Apache is the most widely used web server software on the
Internet. It runs on a wide variety of operating systems and was
recently "adopted" by IBM for use in their high-end web
servers. Because Apache is open-source and the developers weren't
interested in money from IBM, an agreement was reached
essentially stating that IBM was free to use Apache as their web
server, but any changes or improvements to the code must be made
available to the Apache group so they can include it in future
releases, thereby benefitting all those who use it.
Apache - public pages
	
		- Public PC homepage
- All public PC's with Internet access have their homepage set to
			the Library's PAC homepage. This homepage contains a short
			version of the Library's Internet acceptable use policy, a link
			to the full policy, some recommended search engines and various
			other links.
	
		- Meeting room schedule & policy pages
- College Hill Library has several meeting rooms and the schedule
		for each week is made available on the web.
	
		- Redirect of disallowed sites to error pages
- We block access to some web-based e-mail and chat sites. Blocked
		sites are redirected to an error page explaining why
		access was denied.
Apache - staff pages
	
		- Dynix reports
- All Dynix circulation statistics including daily, monthly, yearly
		and special reports are made available via the web.  This allows easy
		distribution to library staff and permits electronic archival instead
		of using paper.
	
		- Special reports
- Special reports like claims returned, exception items and
		data extracts from Dynix are also made available this way whenever
		possible.
Index
Squid
Squid is an Internet object cache/proxy. It works in a similar
fashion to the local cache directory used by Netscape or Internet
Explorer. Anytime a web page is accessed, all "static"
objects (text, graphics, background images, etc.) on the page are
cached in case an object is re-used on another page or the same
page is accessed again by anyone using the cache server. Instead
of having to get the object from the Internet, it is retrieved
from the cache server at local network speed, which is typically
much faster than the connection to the Internet. This helps
reduce network traffic and increases the retrieval speed for
frequently accessed sites.
	- Site restriction
- Squid can also be used to restrict access in many different ways:
	remote site, local PC, browser type, time of day, user ID, etc.
	We have PC's that are catalog only (no Internet access) but since
	they have Netscape installed and some catalog records include
	URL's, we block access to all websites from those machines. We
	also block access to many web-based e-mail sites and chat rooms.
	Given the limited resources available at the library and the fact
	that the College has student PC labs for those kinds of activities,
	we felt e-mail & chat rooms were not a resource we should
	provide access to. In all cases, attempts to access sites
	that have been restricted are redirected to an error page.
	This error page explains why accessing that particular site
	is not allowed.
	- Cache exceptions
- Some of the commercial online reference services we provide access to
	require a list of IP addresses that are allowed to access the site and this
	can pose a problem when using squid since most requests appear to come from
	the cache server and not the actual client machine.  Fortunately, Netscape
	has an easy fix for this problem, allowing you to specify sites where the
	cache server should not be used.
Index
DHCP
Dynamic Host Configuration Protocol or DHCP is a way to
configure a PC's TCP/IP settings during startup, including IP
address, hostname, domain name, default gateway, DNS servers,
WINS servers and more. Most Internet Service Providers (ISP's)
use DHCP to assign your PC a temporary IP address when you
connect to the Internet using a modem. Note: Although hostnames
can be changed with DHCP, NetBIOS (computer) names cannot. There
are other ways to change the NetBIOS name remotely and I
recommend the hostname & NetBIOS name be the same. It just
makes life a little easier. ;-)
For security reasons and to aid troubleshooting, we statically
assign IP addresses to all PC's. Since all PC configurations are
the same upon restoring a ghost image, using DHCP reconfigures
most of the network settings on reboot. In the event of a change
in domain name or router failure, these settings can be changed
on the server and propagated to the PC's by rebooting them.
Index
Automating tasks
A recent and ongoing project has involved trying to automate, or at least
"semi-automate" some of the more routine tasks for both the Linux servers
and the Dynix server.  After all, what good is having a computer or two if it can't
do some of the more mundane tasks for you?  Some of the tools I've used so far include:
	- Cron
- Cron is a job scheduling daemon.  It provides a way to run tasks at
	defined intervals - by minute, hour, date, month and day of week.  A task
	can be anything from a simple command to a complicated script or other program.
	- A command interpreter or shell
- The command interpreter or shell is what you normally see when you telnet in
	to a Linux server. There are different types of shells available, including
	bash, korn, C and others. While shells are used for executing commands
	interactively, they also have their own internal scripting language, which
	can be used to write shell scripts.  The logon process runs a series of
	shell scripts that sets up your user environment - your user ID, group ID,
	home directory and even your default shell.
	- Expect
- Expect is another scripting language that is used primarily to automate
	interactive programs like telnet, ftp and others.  If you've ever used the native
	scripting language common to many telnet clients to automatically log you on
	to another computer that's essentially what expect does, only it's not limited to a
	specific piece of software.
Write a shell script that calls a couple of commands and maybe an expect script
or two, schedule the script using cron and you've got an easy way to automatically
complete routine tasks.
	- Automated (or semi-automated) tasks
	
		- Nightly backups
- Nightly backups was one of the first things
		to be automated. A simple cron entry coupled with full &
		incremental backup scripts.  Just remember to change the tape!
	
		- Rotation of "this-week.html" meeting room schedule page
- The symbolic link to this week's meeting room schedule page
		is updated once a week.
	
		- Semi-automatic generation of daily & monthly
		circulation statistics
- My latest creation, it uses several bash & expect
		scripts to generate statistical reports and make them available
		via the web.  Although the "master" script must be started
		manually, all the rest of the work is done by the scripts.
		Just start the script and 10 minutes later daily statistics for
		the previous day (or any day) are available. Magic!
Index
Future projects
What does the future hold for Linux at the Library?  Some of the projects
I have in mind for "down the road" include:
	- E-mail for all staff to replace Dynix's internal e-mail.
- Enabling Windows '95 roving profiles on staff PC's so staff
	can "take" their desktop look & feel with them.
- A Linux port of Dynix's WebPAC server software.
- A full-blown firewall between the library & college network,
	allowing us to provide some services to college staff.
- More scripts to automate some system administration tasks.
- Additional web pages, including more technical information about
	the services we provide with Linux.
- Configure Preston as a backup route in the event the Library
	or College Internet connection goes down.
- Fully independent operation of the servers at College Hill and
	76th Avenue; Gromit and Rust.
- Installation of a Linux server at Kings Mill Library.
- An additional network segment at College Hill to provide Internet
	access for meeting rooms and patron laptops. For security reasons,
	this will be a physically separate segment and will have a DHCP server
	for easy configuration of patron PC's.
Index
Sources & further reading
Index
	
Thank you's
Patricia, my Wife
	- For not asking too many questions when I come home with
	yet another computer or book.
- For listening to me babble about things she has no real interest in.
- For not panicking when I’m still awake at 4:00am because
	I’ve got a problem to work through.
Veronica Smith, my supervisor
	- For putting her trust in me when I say "this will work" and
	trying to learn Linux, Dynix and networking from me.
- For helping me keep the computer systems at three facilities running.
Kathy Sullivan, Library Services Manager
	- For trusting me to make the right decision.
All those people who make Linux possible.
Index
Dedication
This presentation is dedicated to the memory of Judith A. Houk,
my friend and mentor for many years.
	- Thank you for always encouraging me to learn and take on new projects.
- Thank you for being a sounding board when I had an idea or just needed to rant.
- I regret you were unable to see this project come to fruition.
Index
top
Back to Eric's Linux pages
This page last modified September 07, 1999 by:
Eric Sisler
(esisler@cityofwestminster.us>)