1
0
mirror of https://github.com/aquatix/dotfiles.git synced 2025-12-06 21:45:10 +01:00

Script to archive a file (for example logfile)

This commit is contained in:
2016-03-31 14:06:13 +02:00
parent 72d36ce689
commit 53847a2d21

36
bin/archive_file Normal file
View 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