Mark's Software

This page provides access to tools I've written to fulfill specific needs. I do not claim that they are shining examples of programming technique or that they are the best tools for their given tasks. However, they have served my purposes well and several people have asked me for help with the same issues. So, I thought that it would be useful to make my humble solutions generally available.

The available tools are

These tools were developed under Linux and are intended for a UNIX platform. However, transfer consists of a Perl script and a Perl module so it might run on other platforms as well. Consult or your local CPAN to locate a copy of Perl for your platform. If you find that transfer works on your non-UNIX platform, drop me a note to let me know (

See this directory for files from a port of Content to Mandrake Linux 7.0 that I performed.


Transfer is like a network version of dump. It uses FTP to transfer entire directory trees from a local host to a remote host. The directory structure created under a user-specified directory on the remote host mirrors the absolute directory structure on the local host.

The GNU program wget may contain the same functionality available in transfer as well as additional features. However, it is my understanding that wget primarily "gets" whereas transfer "puts". See for a description of wget. Even if transfer is a case of "reinventing the wheel", it has been a useful tool for me and, as pointed out in the Spring 1999 issue of the Perl Journal, "reinventing the wheel" can be a very good learning experience.

I initially created transfer as a quick and dirty answer to my need to send copies of my dissertation and research files to school where they would be written to tape in case of a hardware failure on my system. It is the poor man's network backup solution in response to not being able to afford a tape drive. I have been using different versions of transfer to copy my work to school for over a year and it has been very adequate for my purposes.


Transfer requires Perl 5 with the Net::FTP module installed. The package libnet of Perl modules containing Net::FTP is available here. I recommend downloading the latest version of libnet and the latest stable perl although older versions will work fine with transfer.


The latest documentation for transfer is available here.

Installation instructions for transfer are here. There are MUCH better ways to install perl modules. I just haven't gotten around to implementing one yet.


Download the latest version of transfer.

PPP Scripts

These are the scripts that I use to establish a PPP connection from my Linux mahine. The scripts serve several purposes. One set of scripts establishes a PPP connection, starts a keep-alive daemon, rewrites /etc/hosts to reflect the connected network set-up, and reconfigures my Apache web server to allow outside connections using the assigned host name. A second set of scripts terminates the PPP connection and rewrites /etc/hosts and reconfigures the web server to correspond to the local network set-up.

This allows me to maintain a local network that is independent of the Internet while allowing me to remove individual machines from the local network and connect them to the Internet via PPP. It also provides access to my local web server from the Internet. A pair of scripts which I am not currently including with this package construct pages which direct visitors to the web server when the machine is connected or inform visitors that the web server is not available when the machine is not connected.

A better solution would be to use IP masquerading. See the IP masquerading HOWTO for details.


The PPP scripts require Perl 5 and bash. They were developed under the System V directory structure of Red Hat Linux and may require editing for other distributions or other UNIXes.


Download the latest version of my PPP scripts.


This page and all pages and photographs on are
© 1994-2004 Mark A. Martin,
except where indicated. Unauthorized use is prohibited.

Last modified: Tue Jul 25 17:48:44 CDT 2000