Today we look at logging, and a new scripting language (Perl).
One is typically attached to the departmental network. We usually leave the second empty, for use in the future for networking-specific exercises.
Running /sbin/ifconfig with no arguments generates a list of all network devices and their configurations. Note the list includes another device we have not mentioned -- the network loopback device, which is defined to be 127.0.0.1 for all systems, and is usually defined with the DNS name of "localhost". You can, for example, ping localhost with the same effect as pinging with the current name of your machine.
Revise the local boot script from lab #2 to incorporate the output of ifconfig on every boot. (No, it doesn't need to be all on one line this time.)
If you are unfamiliar with Perl, start by skimming through the section on Perl in chapter 2 of ULSAH. If you are uncertain of your programming skills, I suggest: Picking Up Perl. If you are more confident, try Perl in 20 pages.
There is lots of Perl documentation online and there are multiple books on Perl (such as Learning Perl and Programming Perl) in the Lehigh Safari e-book library, including a relatively advanced book on Perl for System Administration, 1st Ed. (Chapter 9, Log Files is also available separately. A second edition was published in 2009, but is not in the e-library.)
Now write a very simple Perl script that prints out the parameters given to it, like the echo(1) command. It should work like this:
% ./echo.pl hello world
hello world
The following script will write the words 'hello world' to syslog, along with the PID of the logger.pl process. Modify it to write the contents of all parameters of the script instead (like the echo script above).
Verify that it works by running it and checking /var/log/messages.#!/usr/bin/perl use strict; # compile-time checks use warnings; # enable run-time warnings use Sys::Syslog qw(:DEFAULT setlogsock); # library for syslog functions setlogsock('unix'); # use a unix domain socket openlog("logger.pl", 'pid', 'user'); # register ourselves syslog('info', 'hello world'); # the syslog call closelog(); # close the socket
Consider using any remaining time in lab to start work on Project #1.
In order to sign the lab completion sheet, you will need to: