Remote Server Rsync Backup Replication Shell Script

in Categories Backup last updated April 24, 2008

You need to setup password less login using ssh keys; refer to following tutorials:
+ Howto Linux / UNIX setup SSH with DSA public key authentication (password less login)

+ SSH Public key based authentication – Howto

#!/bin/bash
# Remote Server Rsync backup Replication Shell Script 
# -------------------------------------------------------------------------
# Copyright (c) 2005 nixCraft project <http://cyberciti.biz/fb/>
# This script is licensed under GNU GPL version 2.0 or above
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# ------------------------------------------------------------------------- 
# Local dir location
LOCALBAKPOINT=/disk3
LOCALBAKDIR=/remote/home/httpd/
# remote ssh server
# user
SSHUER=brootbeer 
 
# server IP / host
SSHSERVER=10.10.11.12 
 
#remote dir to backup
SSHBACKUPROOT=/disk2.backup/hot/ 
 
rsync --exclude '*access.log*' --exclude '*error.log*' -avz -e 'ssh ' ${SSHUER}@${SSHSERVER}:${SSHBACKUPROOT} ${LOCALBAKPOINT}${LOCALBAKDIR}
 
# log if backup failed or not to /var/log/messages file
[ $? -eq 0 ] && logger 'RSYNC BACKUP : Done' || logger 'RSYNC BACKUP : FAILED!'
 
# Replicate backup to /disk1 and /disk2
# You can also use format user@host:/path
# refer to rsync man page
SRC=${LOCALBAKPOINT}${LOCALBAKDIR}
DST="/disk1/remote /disk2/remote"
for d in $DST
do
 [ ! -d $d ] && mkdir -p $d || :
 rsync -avr $SRC $d
done

Shell script to backup directories from Linux server to Windows 2000/NT Server

in Categories Backup last updated August 5, 2008
#!/bin/bash
# Shell script to backup directories from Linux server to Windows 2000/NT Server. 
# Run it as follows
# Scriptname /home backup abc123 //server2000/backup
# Backup /home directory from Linux box  to NT/2000 box called
# 'server2000' in share called '/backup' with username
# 'backup' and password 'abc123'
# --------------------------------------------------------------------
# This is a free shell script under GNU GPL version 2.0 or above
# Copyright (C) 2005 nixCraft project
# Feedback/comment/suggestions : http://cyberciti.biz/fb/
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# -------------------------------------------------------------------------
 
# backup what?
FROM=$1
# NT Connection Info #
# NT Username
NTUSER=$2
# NT Password
NTPASSWD=$3
# NT ShareName i.e //server/backup etc
NTSHARE="$4"
 
# BackUpDir Name
BACKDIR="$(hostname -s)"
 
# Local mount point
MNT="/mnt/smbbox"
 
# Get date and time 
NOW=$(date +"%m-%d-%Y-%I_%M%P")
# backup file  name
BAKFILE="backup.$NOW.tar.gz"
 
if [ "$#" != "4" ]; then
	echo "Syntax:"
	echo "$(basename $0) {Linux-directory} {NTusername} {NTpassword} {//NTserver/share-name}"
	exit 1
fi
# make sure $from do exits
if [ ! -d $FROM ]; then
   echo "Backup source directory \"$FROM\" does NOT exist"
   exit 2
fi
#Create tar to backup first
tar -czf /tmp/$BAKFILE $FROM 
 
#Mount the smb to /mnt 
[ ! -d $MNT ] && mkdir -p $MNT || :
 
mount -t smbfs -o username=$NTUSER,password=$NTPASSWD $NTSHARE $MNT
 
[ ! -d $MNT/$BACKDIR ] && mkdir -p $MNT/$BACKDIR || :
 
# Copy new tar to ntbox
cp /tmp/$BAKFILE $MNT/$BACKDIR
 
# Send sync aka force to write data before issuing umount
sync
 
# issue umount
umount $MNT