Featured Post

Using USB CDMA modem to setup a home/private WiFi network

The idea here is to give a ‘how-to’ on setting up a a home WiFi network using mobile, CDMA based USB modem, hoping that bandwidth that you obtain from this service is satisfactory :-) Hardware Requirements: Linux PC/Notebook/Netbook Wifi Access point connected to ethernet port of the Linux box CDMA-1x USB Modem (Device used: Reliance M880) Software/OS Requirements: Linux Operating System with “usbserial” and “cdc_acm” device driver modules “pppd”, “wvdial”, “iptables”, and “dnsmasq” applications and their dependencies installed on the System Setup: The steps followed in setting up this CDMA based connectivity can be split into 3 steps, as follows. Configuring kernel modules for auto-loading at bootup Configuring “wvdial” application for dialup / ppp connection Initializing / starting the CDMA modem connection Setting up “iptables” for NAT forwarding Setting up “dnsmasq” for resolving DNS and as DHCP server Configuring kernel modules for auto-loading at bootup Open

A script to mirror directories locally via rsync

Nothing really fancy here! I just wrote a simple rsync script which can be used to do a mirror of a set of directories from one place to the other. I use this to do incremental mirror of local Debian repositories from my machine, to my external USB hard-disk, so that I can give it to somebody who needs the entire Debian repo.

Of course, it’s application is not limited to copying just a single directory but, you can have an entire system backup by giving space separated list of directories to mirror. This script creates a directory corresponding to the basename of each of the source directories. For example, if the source directory is /opt/mystuff/projects and the destination root directory(named as RTARGET in the script) is /media/disk/backup, the script will create a directory called ‘projects’ under /media/disk/backup and mirrors the contents from /opt/mystuff/projects to /media/disk/backup/projects.

Note: This script comes with absolutely no warranty of any kind. You may use it at your own risk :-) Remember to change the values of SOURCES and RTARGET according to your need. You can save the shell script below into a file called mbakdir.sh and place it in /usr/local/sbin directory. Don’t forget to set its executable bits (chmod 755).

#!/bin/sh
# mbakdir.sh -- secure local backup using rsync.

export PATH=/usr/local/bin:/usr/local/sbin:$PATH

# Directories to backup. Separate with a space.
#Exclude trailing slash!
SOURCES="/opt/mystuff1 /opt/mystuff2"

# Directory to backup to on the remote machine.
#This is where your backup(s) will be stored
# Exclude trailing slash!
RTARGET="/media/disk/backup"

echo "Verifying Sources..."
for source in $SOURCES; do
    echo "Checking $source..."
    if [ ! -x "$source" ]; then
        echo "Error with $source!"
        echo "Directory either does not exist, or \
        you do not have proper permissions."
        exit 2
    fi
done

echo "Sources verified. Running rsync..."
RBAKOPTS="--delete -zavl"

# Now, do current week's incremental backup
for source in $SOURCES; do
    mkdir -p $RTARGET/$(basename $source)
    rsync $RBAKOPTS $source/ $RTARGET/$(basename $source)/
done

exit 0

Comments

Popular posts from this blog

Using USB CDMA modem to setup a home/private WiFi network

How to extract an initrd image

Debian Squeeze and Mac OSX Lion - Dual boot