Perl scripts to backup and restore a Men&Mice data set

These scripts work together to backup and restore the Men&Mice data. It can backup the Men&Mice database but the database needs to be copied to a secure location away from the Central Server.

These script were designed to work with version 5.6 and 5.6.1 of the Men&Mice suite.

They were tested on a Fedora 16 server.


First is a shell script that serves as a driver to backup up multiple Men&Mice severs, such as production internal, production external, test, Disaster Recovery sets, etc. you must modify the scrpt to add a function for each environment. Some basic shell scripting skills are needed for this. But Its nothing too terribly difficult. If you are responsible for a Men&Mice installation, it’s a safe bet that you have basic scripting skills or the talent to acquire them.

You must invoke the script as [password]

This script will in turn call with all the appropriate command line options.

You may have to edit some of the variables that hold location information.

This is the help output for

./   -h -d -p password -m master-server -z zone_name -s server -s server ..
    -u user   default: Administrator
    -p password to M&M Central
    -m Master server  default:
    -c central server default:
    -z print the data in a zone and exit.
    -r print all the records from all the zones
    -a print a list of zones from the master server and exit
    -o execute one of the following command
        compare - compares zones against what is on the master.
    -i server information
    -b backup the men and mice database
    -t [backup_dir] directory to backup the men and mice database to default:
    -l i[1|2] mmcmd command-line
       1: /home/share/mm/mmcmd : default version 5.6 or whatever one has installed.
       2: /home/share/mm/mmcmd_5.6.1
    -d debug mode
    -h this message

Obviously you will have to experiment with the -l switch. The -l switch is three when you have two different version of men&mice running in your environment.


The restore script is a two step process.

first you have to break up the files created by the backup script. The backup script places all he zones and records into one large file. to do this we use the following script. It will create a directory called restore under the default  $restore_dir. The -t option allows you to set the directory target.

./   -h -d -f [file] -a -t [restore-dir]
    -f monolithic-backup-file.
    -a print a list of zones from  datafile  and  exit.
    -t [restore_dir] directory to restore the men and mice data to default: /home/share/mm/restore
           also create  the zoneopt files and a named.conf file.
    -d debug mode
    -h this message

Once the files are restored you can copy them to a Men&Mice DNS server and try to restart the server and reload the data base with all the files in place. This method is still untested. I have managed to have success with this method but your mileage may vary. the following script will use the men and mice command line interface to recreate the zones. But this method is slow. It is a variation of the addzone script and still retains the addzone scripts ability to add a new zone.

./   -h -d -m master-server -u user -p password -z zone_name -r "comment"
    -c central server default=
    -m Master server  default:
        -u user default: Administrator
          -p password to M&M Central
        -f file containing list of zones, one per line
    -k comment - this is necessary default comment: initial addition of zone
        -s show the zone specified in -z and exit
        -z select a zone to display or process
        -t template file 

        -g restore directory where the zone files are kept, requires -f
        -r restore the zone files from the -g option 

    -d debug mode
    -h this message

By default the zone will be created on all the servers

example template file. The one shown is the default template:

@        IN    SOA    1    3h    1h    7d    3d
@        IN    NS
@        IN    NS
@        IN    NS
@        IN    A
www      IN    CNAME    @

And here are the scripts

CVS revision numbers:           # $Revision: 1.4 $             # $Revision: 1.3 $    # $Revision: 1.3 $  # $Revision: 1.3 $

Comments are closed.