I remember when almost anything I did with a computer resulted in a sense of wonder and excitement.

I realized yesterday that I rarely feel it these days. While I still learn things in my field every day, I think it's the newness that has worn off. I also think that computing was much more fun and interesting when I was closer to the hardware and to the basics of the operating environment.

Last weekend I set up a backup system for my SVR4 box over NFS. I set up an NFS server on a modern Linux box with a large amount of reliable storage, and mounted a directory on my SVR4 box. Then I wrote a backup script that uses find/cpio to find the latest files, and back them up in a set of directories on the NFS server. I run it daily out of a crontab.

Just getting NFS running again on the old SVR4 system was fun, and to see it mounting directories from a modern Linux system was great! It brought back a little of the sense of wonder I got the first time I did this, back in the early 1990's.

I've (we've?) gotten so used to applications with fancy GUIs that I lose sight of the idea that even with old technology (NFS, bourne shell, basic UNIX apps), one can do amazing and elegant things very simply. The guts of my backup script is just a few lines of shell script:
PATH=/bin:/usr/bin:/sbin:/usr/sbin
CPIO=/usr/local/bin/cpio
# Capture the day of the week.
DATE=`/bin/date +%a`
# Check if the nfs directory is mounted. Quit if not.
if mount | grep myserver > /dev/null
then
;find `cat /root/bin/backupdirs` -depth -newer \
/mnt/pitlog/backup/$DATE/backuptime -print | \
$CPIO -pdmv /mnt/pitlog/backup/$DATE
touch /mnt/pitlog/backup/$DATE/backuptime
fi
Now it's not an elegant or complete script; I could make it better with a little thought, but in just these couple of lines it checks to see if the NFS server is mounted, finds and transfers all the files that are newer than the last backup, and updates the time of latest backup. A real scripter will have issues with it, but it gets the job done simply. And it gave me a bit of that sense of wonder again! Simple things can be so powerful.

The original UNIX folks recognized that small, single purpose tools, a strong scripting environment, and a kernel with pipes and redirection were a prescription for terrific application development, and they were right!

This is the basis of the UNIX philosophy, and it's as relevant today as it was in the '70s. Sometimes it's hard to see this through the glitz of the windowed desktop.

-Tom