#!/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"