varbackup/varbackup.sh

50 lignes
1.2 KiB
Bash
Fichiers exécutables

#!/bin/bash
Help()
{
# Display Help
echo "create a rotating backup of the var folder"
echo
echo "Syntax: varbackup [-h|s]"
echo "options:"
echo "h Print this Help."
echo "s Silent mode."
echo
}
while getopts ":hs" option; do
case $option in
h) # display Help
Help
exit;;
s) # enable silent mode
isSilent=true;;
esac
done
# main program
currDir="$(pwd)/backup/var/"
if [ ! -d "$currDir" ]; then
[ -z ${isSilent} ] && echo "creating backup directory ${currDir}"
mkdir -p "${currDir}"
fi
if [ ! -f "${currDir}../rotatemap_var.conf" ]; then
[ -z ${isSilent} ] && echo "creating config file"
printf "${currDir}var.tar.gz {\nrotate 100\n}" > ${currDir}/../rotatemap_var.conf
fi
[ -z ${isSilent} ] && echo "pack var directory"
tar -cf ${currDir}var.new.tar ./var;
if [ ! -f "${currDir}var.tar" ] || [ "$(cmp ${currDir}var.tar ${currDir}var.new.tar)" ]; then
gzip -c ${currDir}var.tar > ${currDir}var.tar.gz
logrotate -f -s "${currDir}../rotatemap_var.state" "${currDir}../rotatemap_var.conf"
mv ${currDir}var.new.tar ${currDir}var.tar
else
rm ${currDir}var.new.tar
fi
[ -z ${isSilent} ] && echo "finished"