initial commit of a *whole bunch* of old Egressive shell scripts, used to make many people redundant.
This commit is contained in:
commit
43e0f5b59e
329 changed files with 31937 additions and 0 deletions
88
egrsbackup/egrsbackup
Executable file
88
egrsbackup/egrsbackup
Executable 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
8
egrsbackup/egrsbackup-cron
Executable 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
31
egrsbackup/egrsbackup.conf
Executable 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
46
egrsbackup/initial.sh.usb.fsck
Executable 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
54
egrsbackup/postrun.sh.usb.fsck
Executable 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
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue