bring back old script
This commit is contained in:
parent
76425b3928
commit
51781cf7f2
81
BackupScript/Backup.sh
Normal file
81
BackupScript/Backup.sh
Normal file
@ -0,0 +1,81 @@
|
||||
#!/bin/bash
|
||||
|
||||
|
||||
# Usage instructions at http://www.megaleecher.net/Best_Raspberry_Pi_Hot_Backup_Shell_Script
|
||||
# This version disables backup image compression as it takes too much time on Pi, to enable uncomment the relavent lines
|
||||
# Setting up directories, Just change SUBDIR and DIR varibales below to get going
|
||||
|
||||
|
||||
SUBDIR=deskPi
|
||||
DIR=/home/pi/ServerBackups
|
||||
|
||||
echo "Starting RaspberryPI backup process!"
|
||||
|
||||
# First check if pv package is installed, if not, install it first
|
||||
PACKAGESTATUS=`dpkg -s pv | grep Status`;
|
||||
|
||||
if [[ $PACKAGESTATUS == S* ]]
|
||||
then
|
||||
echo "Package 'pv' is installed."
|
||||
else
|
||||
echo "Package 'pv' is NOT installed."
|
||||
echo "Installing package 'pv'. Please wait..."
|
||||
apt-get -y install pv
|
||||
fi
|
||||
|
||||
# Check if backup directory exists
|
||||
if [ ! -d "$DIR" ];
|
||||
then
|
||||
echo "Backup directory $DIR doesn't exist, creating it now!"
|
||||
mkdir $DIR
|
||||
fi
|
||||
|
||||
# Create a filename with datestamp for our current backup (without .img suffix)
|
||||
OFILE="$DIR/backup_$(date +%Y%m%d_%H%M%S)"
|
||||
|
||||
# Create final filename, with suffix
|
||||
OFILEFINAL=$OFILE.img
|
||||
|
||||
# First sync disks
|
||||
sync; sync
|
||||
|
||||
# Shut down some services before starting backup process
|
||||
echo "Stopping some services before backup."
|
||||
service apache2 stop
|
||||
service mysql stop
|
||||
service cron stop
|
||||
|
||||
# Begin the backup process, should take about 1 hour from 8Gb SD card to HDD
|
||||
echo "Backing up SD card to USB HDD."
|
||||
echo "This will take some time depending on your SD card size and read performance. Please wait..."
|
||||
SDSIZE=`blockdev --getsize64 /dev/mmcblk0`;
|
||||
pv -tpreb /dev/mmcblk0 -s $SDSIZE | dd of=$OFILE bs=1M conv=sync,noerror iflag=fullblock
|
||||
|
||||
# Wait for DD to finish and catch result
|
||||
RESULT=$?
|
||||
|
||||
# Start services again that where shutdown before backup process
|
||||
echo "Start the stopped services again."
|
||||
service apache2 start
|
||||
service mysql start
|
||||
service cron start
|
||||
|
||||
# If command has completed successfully, delete previous backups and exit
|
||||
if [ $RESULT = 0 ];
|
||||
then
|
||||
echo "Successful backup, previous backup files will be deleted."
|
||||
rm -f $DIR/backup_*.img
|
||||
mv $OFILE $OFILEFINAL
|
||||
echo "Backup is being tarred. Please wait..."
|
||||
#tar zcf $OFILEFINAL.tar.gz $OFILEFINAL
|
||||
# rm -rf $OFILEFINAL
|
||||
echo "RaspberryPI backup process completed! FILE: $OFILEFINAL"
|
||||
exit 0
|
||||
# Else remove attempted backup file
|
||||
else
|
||||
echo "Backup failed! Previous backup files untouched."
|
||||
echo "Please check there is sufficient space on the HDD."
|
||||
rm -f $OFILE
|
||||
echo "RaspberryPI backup process failed!"
|
||||
exit 1
|
||||
fi
|
Loading…
x
Reference in New Issue
Block a user