• Nightly Backups

    From Sean Dennis@1:18/200 to All on Sun Nov 22 13:51:05 2015
    Hello All,

    I thought I posted this file in here, but I didn't. Here it is:

    === Cut ===
    How To Make Nightly Backups Easy
    By Sean Dennis
    16 November 2015
    ================================
    MBSE BBS should be backed up nightly as part of a good disaster recovery program. This is part of my "hot" part of my personal disaster recovery program.[1]

    I am running, as of this writing, MBSE BBS 1.0.6 under Slackware Linux 14.1.

    These particular examples involve using crond (Dillon's cron) and run-parts. Your system may vary from this, so adjust accordingly.

    The first thing I did was install rdiff-backup. This is available for many distros. rdiff-backup is a Python script that uses rsync to perform backups both locally and via SSH to other systems. rdiff-backup's website[2]
    explains how to do all of that and much more.

    From rdiff-backup's website:
    "rdiff-backup backs up one directory to another, possibly over a network.
    The target directory ends up a copy of the source directory, but extra
    reverse diffs are stored in a special subdirectory of that target directory,
    so you can still recover files lost some time ago. The idea is to combine
    the best features of a mirror and an incremental backup. rdiff-backup also preserves subdirectories, hard links, dev files, permissions, uid/gid ownership, modification times, extended attributes, acls, and resource
    forks. Also, rdiff-backup can operate in a bandwidth efficient manner over a pipe, like rsync. Thus you can use rdiff-backup and ssh to securely back a
    hard drive up to a remote location, and only the differences will be transmitted. Finally, rdiff-backup is easy to use and settings have sensical defaults."

    I started doing research about creating a script to do the nightly backups.
    As I read, I learned a few quirks about run-parts: a) run-parts will not run
    a script that has an extension and b) the script's permissions should be set
    to 755. This script runs as root, so as root, I created the following script in /etc/cron.daily (which runs at 0440 local time):

    #!/bin/bash
    mount /dev/sdb1 /mnt/backup
    rdiff-backup /opt/mbse /mnt/backup/nightly
    umount /mnt/backup
    echo "Nightly Backup Successful: $(date)" >> /opt/mbse/log/backup.log

    Let me explain what this does if you're not familiar:

    * Line 1: Opens a command shell.
    * Line 2: I have an external USB 500GB hard drive that I'm using for the
    nightly backups. I created the /mnt/backup mounting point just for this
    drive.
    * Line 3: This is the line that does the work. It calls rdiff-backup to
    backup all the files in /opt/mbse over to my USB drive into the nightly
    directory.
    * Line 4: Unmounts the drive (in case of problems, the drive is not
    affected).
    * Line 5: This just writes that line to the specified log file for my own
    personal information. MBSE has ntohing to do with this.

    The best thing about rdiff-backup is that it copies the files as they are.
    No compression (unless you want it), nothing fancy. Lose a file? Just copy
    it directly over from the backup directory.

    I'd highly recommend reading up on rdiff-backup as it contains many features
    I have no need for but you might find indispensable.

    If you have any questions about this, please contact me in Fidonet's MBSE
    echo, via netmail at 1:18/200@Fidonet or 618:618/1@Micronet, or email at sysop@outpostbbs.net (the first two methods preferred). You can also find
    me on my BBS, Outpost BBS, at telnet://bbs.outpostbbs.net.

    -- Sean Dennis
    Outpost BBS SysOp

    Footnotes:
    [1] = While you may not be running your BBS as a business, it makes sense to treat it like one when it comes to backing up your data. A good place to
    start learning about a disaster recovery plan is here:

    http://www.ready.gov/business/implementation/IT

    A Google search using "basic disaster recovery plan" provides a lot of information also if you're not familiar with this concept.


    [2] = http://www.nongnu.org/rdiff-backup/

    <EOF>
    === Cut ===

    Later,
    Sean

    --- GoldED+/LNX 1.1.5-b20150715
    * Origin: Outpost BBS * Limestone, TN, USA (1:18/200)