50 lines
1.2 KiB
Bash
Executable File
50 lines
1.2 KiB
Bash
Executable File
#!/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"
|