From 53847a2d21456dfd586b9aa5091e2437f1ad192b Mon Sep 17 00:00:00 2001 From: Michiel Scholten Date: Thu, 31 Mar 2016 14:06:13 +0200 Subject: [PATCH] Script to archive a file (for example logfile) --- bin/archive_file | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 bin/archive_file diff --git a/bin/archive_file b/bin/archive_file new file mode 100644 index 0000000..29eec01 --- /dev/null +++ b/bin/archive_file @@ -0,0 +1,36 @@ +#!/bin/bash + +if [ -z "$1" ]; then + echo "No filename to archive provided" + exit 1 +elif [ -z "$2" ]; then + echo "No archive directory path provided" + exit 2 +fi + +FILENAME="${1}" +ARCHIVEDIR="${2}" + +if [ ! -e $FILENAME ]; then + echo "$FILENAME does not exist, exiting" + exit 3 +elif [ ! -e $ARCHIVEDIR ]; then + mkdir -p $ARCHIVEDIR + echo "Created $ARCHIVEDIR" +fi + +DATETIME=$(stat -c %Y $FILENAME) + +if [ -e "$ARCHIVEDIR/timestamp.txt" ]; then + PREV_DATETIME=$(cat "$ARCHIVEDIR/timestamp.txt") +fi + +echo $DATETIME +if [ $DATETIME != $PREV_DATETIME ]; then + # Archive the file + FILE=$(basename $FILENAME) + TARGETFILE="${ARCHIVEDIR}/${HOSTNAME}_${DATETIME}_${FILE}" + cp -a $FILENAME "${TARGETFILE}" + gzip -9 "${TARGETFILE}" + echo $DATETIME > "$ARCHIVEDIR/timestamp.txt" +fi