113 lines
3.7 KiB
Bash
Executable File
113 lines
3.7 KiB
Bash
Executable File
#!/bin/bash
|
|
#-------------------------------------------------------------------------------
|
|
# Copyright (c) 2010 Sourcefabric O.P.S.
|
|
#
|
|
# This file is part of the Airtime project.
|
|
# http://airtime.sourcefabric.org/
|
|
#
|
|
# Airtime is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# Airtime is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with Airtime; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
#
|
|
#-------------------------------------------------------------------------------
|
|
#-------------------------------------------------------------------------------
|
|
# This script creates a tgz archive of the Airtime storage.
|
|
#
|
|
# To get usage help, try the -h option
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------
|
|
# Determine directories, files
|
|
#-------------------------------------------------------------------------------
|
|
|
|
reldir=`dirname $0`
|
|
phpdir=$reldir
|
|
mkdir -p $reldir/tmp
|
|
tmpmaindir=`cd $reldir/tmp; pwd`
|
|
dbxml="db.xml"
|
|
datestr=`date '+%Y%m%d%H%M%S'`
|
|
xmltar="xmls.tar"
|
|
destfile="storage$datestr.tar"
|
|
|
|
#-------------------------------------------------------------------------------
|
|
# Print the usage information for this script.
|
|
#-------------------------------------------------------------------------------
|
|
printUsage()
|
|
{
|
|
echo "This script creates a tgz archive of the Airtime storage.";
|
|
echo "parameters:";
|
|
echo "";
|
|
echo " -d, --destination Destination directory [default:$tmpmaindir].";
|
|
echo " -h, --help Print this message and exit.";
|
|
echo "";
|
|
}
|
|
|
|
#-------------------------------------------------------------------------------
|
|
# Process command line parameters
|
|
#-------------------------------------------------------------------------------
|
|
CMD=${0##*/}
|
|
|
|
opts=$(getopt -o hd: -l help,destinantion: -n $CMD -- "$@") || exit 1
|
|
eval set -- "$opts"
|
|
while true; do
|
|
case "$1" in
|
|
-h|--help)
|
|
printUsage;
|
|
exit 0;;
|
|
-d|--destinantion)
|
|
destdir=$2
|
|
shift; shift;;
|
|
--)
|
|
shift;
|
|
break;;
|
|
*)
|
|
echo "Unrecognized option $1.";
|
|
printUsage;
|
|
exit 1;
|
|
esac
|
|
done
|
|
|
|
if [ "x$destdir" == "x" ]; then
|
|
destdir=$tmpmaindir
|
|
fi
|
|
destdir=`cd $destdir; pwd`
|
|
|
|
#-------------------------------------------------------------------------------
|
|
# Do backup
|
|
#-------------------------------------------------------------------------------
|
|
|
|
tmpdir=`mktemp -d $tmpmaindir/tmp.XXXXXX`
|
|
|
|
echo "Backuping to $destdir/$destfile :"
|
|
echo "Dumping database ..."
|
|
cd $phpdir
|
|
php -q airtime_backup.php > $tmpdir/$dbxml
|
|
echo "Packaging stored files ..."
|
|
cd $phpdir
|
|
storpath=`php -q getStorPath.php`
|
|
cd $storpath/..
|
|
find stor -name "*.xml" -print | tar cf $tmpdir/$xmltar -T -
|
|
find stor ! -name "*.xml" -a -type f -print | tar cf $tmpdir/$destfile -T -
|
|
cd $tmpdir
|
|
tar rf $xmltar $dbxml --remove-files
|
|
echo "Compressing XML part ..."
|
|
bzip2 $xmltar
|
|
tar rf $destfile $xmltar.bz2 --remove-files
|
|
mv $destfile "$destdir"
|
|
rmdir $tmpdir
|
|
|
|
#-------------------------------------------------------------------------------
|
|
# Say goodbye
|
|
#-------------------------------------------------------------------------------
|
|
echo "done"
|