initial commit of a *whole bunch* of old Egressive shell scripts, used to make many people redundant.

This commit is contained in:
Dave Lane 2016-03-16 13:43:31 +13:00
commit 43e0f5b59e
329 changed files with 31937 additions and 0 deletions

88
egrsbackup/egrsbackup Executable file
View file

@ -0,0 +1,88 @@
#!/bin/bash
#
#
#
RSYNC_COMMAND=`which rsync`
MAIL_COMMAND=`which mail`
GREP_COMMAND=`which grep`
TAIL_COMMAND=`which tail`
NICE_COMMAND=`which nice`
HEAD_COMMAND=`which head`
CAT_COMMAND=`which cat`
DF_COMMAND=`which df`
DIRNAME_COMMAND=`which dirname`
BASENAME_COMMAND=`which basename`
FSCK_COMMAND=`which e2fsck`
TUNE2FS_COMMAND=`which tune2fs`
DATE_COMMAND=`which date`
EGRD_ROOT=`$DIRNAME_COMMAND $0`
EGRD_SCRIPT=`$BASENAME_COMMAND $0`
# config file
CONF_FILE=$EGRD_ROOT/$EGRD_SCRIPT.conf
INITIAL_CMD_FILE="initial.sh"
POST_CMD_FILE="postrun.sh"
INITIAL_CMD_FILE_OK="true"
#
# initialise end status
BACKUP_STATUS="[SUCCESS]"
#
# Get local configuration
#
if [ -x $CONF_FILE ] ; then
. $CONF_FILE
else
$CAT_COMMAND $LOGFILE | $MAIL_COMMAND -s "[ERROR] Could not find config file for $SERVERNAME backup" $MAIL_TO
exit 1
fi
#
#
if [ -x $EGRD_ROOT/$INITIAL_CMD_FILE ] ; then
. $EGRD_ROOT/$INITIAL_CMD_FILE
fi
#
if ! [ $INITIAL_CMD_FILE_OK == "true" ]
then
BACKUP_STATUS="[ERROR]"
BACKUP_ERROR=" | Error during initial setup"
echo "Fatal error while running initial.sh" >> $LOGFILE 2>> $LOGFILE
$CAT_COMMAND $LOGFILE | $MAIL_COMMAND -s "$BACKUP_STATUS $SERVERNAME backup $BACKUP_ERROR" $MAIL_TO >> $LOGFILE 2>> $LOGFILE
echo "Email sent to $MAIL_TO" >> $LOGFILE
echo "Script complete" >> $LOGFILE 2>> $LOGFILE
echo "" >> $LOGFILE
exit 1
fi
#
ALL_RSYNC_EXCLUDES=""
if [ -n "$RSYNC_EXCLUDES" ] ; then
for i in $RSYNC_EXCLUDES ; do
ALL_RSYNC_EXCLUDES=$ALL_RSYNC_EXCLUDES" --exclude $i "
done
fi
touch $LOGFILE
DATE=`date`
echo "+++++++++++++++++++++++++++++++++++++++++++" >> $LOGFILE
echo " Starting backup ($DATE) " >> $LOGFILE
echo "+++++++++++++++++++++++++++++++++++++++++++" >> $LOGFILE
echo "Running command: $NICE_COMMAND $RSYNC_COMMAND $RSYNC_ARGS $ALL_RSYNC_EXCLUDES $RSYNC_SRC $RSYNC_DEST " >> $LOGFILE
if ! $NICE_COMMAND $RSYNC_COMMAND $RSYNC_ARGS $ALL_RSYNC_EXCLUDES $RSYNC_SRC $RSYNC_DEST >> $LOGFILE 2>> $LOGFILE
then
BACKUP_STATUS="[ERROR]"
fi
echo "File system usage:" >> $LOGFILE
$DF_COMMAND -h |grep $MOUNT_POINT >> $LOGFILE 2>> $LOGFILE
DATE=`date`
echo "+++++++++++++++++++++++++++++++++++++++++++" >> $LOGFILE
echo " Completed backup " >> $LOGFILE
echo "+++++++++++++++++++++++++++++++++++++++++++" >> $LOGFILE
if [ -x $EGRD_ROOT/$POST_CMD_FILE ] ; then
. $EGRD_ROOT/$POST_CMD_FILE
fi
#
$CAT_COMMAND $LOGFILE | $MAIL_COMMAND -s "$BACKUP_STATUS $SERVERNAME backup" $MAIL_TO >> $LOGFILE 2>> $LOGFILE
echo "Email sent to $MAIL_TO" >> $LOGFILE
echo "Script complete" >> $LOGFILE 2>> $LOGFILE

8
egrsbackup/egrsbackup-cron Executable file
View file

@ -0,0 +1,8 @@
#
# egbackup, copyright 2005 egressive limited, www.egressive.com
#
# run system backups
#
# daily - at 2:30 am, mon-sun
30 2 * * * root /etc/egscripts/egrdbackup/egrdbackup

31
egrsbackup/egrsbackup.conf Executable file
View file

@ -0,0 +1,31 @@
# Configuration Variables
#
# Name of the server for the subject of the success/ failure
#SERVERNAME="jimbo.egressive.com"
SERVERNAME="Plainsfm ASM server"
#
# Change this for multiple egrdbackups on the same server (eg USB and local)
EGRD_LOGNAME="egrsproduction"
LOGFILE=/var/log/$EGRD_LOGNAME.log # use logrotate to manage logs
#
# Source and destination directories for the backup
RSYNC_SRC="/storage/production/"
#
#RDIFF_DEST="root@hostname::/storage/backups/this_server"
#RDIFF_DEST="/storage/backups"
#RDIFF_DEST="/mnt"
RSYNC_DEST="/mnt/production"
#
RSYNC_ARGS="-aA --human-readable --stats --delete"
#
#
#Directories to exclude from backup - space separated list
RSYNC_EXCLUDES=""
#
# Check to see if this is a local backup (ie no :: in the destination).
# Local backups need to exclude the destination from being backup up ;-)
#
# mail account for sending success/ failure messages
MAIL_TO="support@egressive.com"
#
##

46
egrsbackup/initial.sh.usb.fsck Executable file
View file

@ -0,0 +1,46 @@
#/bin/bash
#
# This script runs before the main rdiffbackup script
# useful for mounting USB drives
#
#
#
POSSIBLE_USB_DRIVES="/dev/sdc1 /dev/sdd1 /dev/sde1"
MOUNT_POINT="/mnt"
USB_DRIVE="unknowndrive"
#
#
for i in $POSSIBLE_USB_DRIVES
do
if udevinfo --query=name --name $i > /dev/null 2>> $LOGFILE
then
USB_DRIVE=$i
fi
done
if [ $USB_DRIVE == "unknowndrive" -o $MOUNT_POINT"xxx" == "xxx" ]
then
echo "ERROR - Mount point or drive device not defined in config file or drive device not found" >> $LOGFILE 2>> $LOGFILE
INITIAL_CMD_FILE_OK="false"
elif ! mount | grep $USB_DRIVE > /dev/null
then
if ! mount $USB_DRIVE $MOUNT_POINT
then
echo "ERROR - Couldn't mount USB Drive" >> $LOGFILE 2>> $LOGFILE
INITIAL_CMD_FILE_OK="false"
fi
else
echo "WARNING - $USB_DRIVE already mounted" >> $LOGFILE 2>> $LOGFILE
INITIAL_CMD_FILE_OK="false"
fi
# Check whether a fsck is needed after the backup
# Get the current date in seconds from the 1/1/1970
CUR_DATE=`$DATE_COMMAND +%s`
DATE_STRING=$($TUNE2FS_COMMAND -l $USB_DRIVE |grep "Next check after:")
CHECK_DATE_STRING=$(echo $DATE_STRING | awk 'BEGIN {FS=":"}{print $2":"$3":"$4}')
CHECK_DATE=$($DATE_COMMAND --date="$CHECK_DATE_STRING" +%s)
if [ $CUR_DATE -ge $CHECK_DATE ] ; then
FS_CHECK=true
else
FS_CHECK=false
fi

54
egrsbackup/postrun.sh.usb.fsck Executable file
View file

@ -0,0 +1,54 @@
#/bin/bash -x
#
# This script runs before the main rdiffbackup script
# useful for mounting USB drives
#
# returns
# nothing if successful
# 1 = error on umount command
# 2 = parameters not defined
# 3 = no file system mounted
#
#
if [ $MOUNT_POINT"xxx" == "xxx" ]
then
echo "ERROR - Mount point not defined in initial.sh file" >> $LOGFILE
fi
#
if mount | grep $MOUNT_POINT > /dev/null
then
if ! umount $MOUNT_POINT
then
echo "ERROR - Couldn't unmount $MOUNT_POINT" >> $LOGFILE
else
if [ $FS_CHECK == true ]
then
echo ""
echo ""
echo "++++++++++++++++++++++++++++++++++++++++++" >> $LOGFILE
echo " Running a File system check on $USB_DRIVE" >> $LOGFILE
echo "++++++++++++++++++++++++++++++++++++++++++" >> $LOGFILE
if ! $FSCK_COMMAND -fvp $USB_DRIVE >> $LOGFILE
then
echo "Error running the filesystem check" >> $LOGFILE
else
#Setting the last check time to now, and the check interval to 6 months
$TUNE2FS_COMMAND -T now $USB_DRIVE
$TUNE2FS_COMMAND -i 6m $USB_DRIVE
echo "++++++++++++++++++++++++++++++++++++++++++" >> $LOGFILE
echo "Filesystem check of $USB_DRIVE was successful" >> $LOGFILE
echo "++++++++++++++++++++++++++++++++++++++++++" >> $LOGFILE
fi
else
echo ""
echo ""
echo "++++++++++++++++++++++++++++++++++++++++++" >> $LOGFILE
echo " Next USB Drive check scheduled for $CHECK_DATE_STRING" >> $LOGFILE
echo "++++++++++++++++++++++++++++++++++++++++++" >> $LOGFILE
fi
fi
else
echo "ERROR - no file system on $MOUNT_POINT" >> $LOGFILE
fi