Bläddra i källkod

Add server_file_backup.sh

pengm01 3 år sedan
incheckning
1d949e4990
1 ändrade filer med 37 tillägg och 0 borttagningar
  1. 37 0
      server_file_backup.sh

+ 37 - 0
server_file_backup.sh

@@ -0,0 +1,37 @@
+#!/bin/bash
+# Usage: ./server_file_backup.sh $BACKUP_DIR $SAVE_DIR $EXCLUDE_DIR
+# Or: curl -s https://git.immiles.com/miles/scripts/raw/master/server_file_backup.sh | bash -s $BACKUP_DIR $SAVE_DIR $EXCLUDE_DIR
+
+#set -ex
+
+# Set Var
+BACKUP_DIR=$1
+SAVE_DIR=$2
+EXCLUDE_DIR=$3
+DATE=`date +"%Y%m%d_%H%M%S"`
+LOG_FILE=$BACKUP_DIR/file_backup.log
+FILE_BASENAME=`echo $BACKUP_DIR | sed 's#/#_#g'`
+FILE_BASENAME=${FILE_BASENAME:1}
+
+RETENTION=$((14*24*60))  # 2 weeks
+KEEP=7
+
+echo "--------------------------$DATE------------------------" >> $LOG_FILE
+echo "[BEGIN] Backup [$BACKUP_DIR]" >> $LOG_FILE
+
+# Backup
+tar --exclude="$EXCLUDE_DIR" -v -jpcf $SAVE_DIR/$FILE_BASENAME.$DATE.tar.bz2 $BACKUP_DIR >> $LOG_FILE 2>&1
+
+if [ $? == "0" ];then
+    echo "[SUCCESS] Files in [$SAVE_DIR] backup" >> $LOG_FILE
+    echo "--------------------------$DATE------------------------" >> $LOG_FILE
+else
+    echo "[FAIL] Files in [$SAVE_DIR] backup" >> $LOG_FILE
+    echo "--------------------------$DATE------------------------" >> $LOG_FILE
+    exit 1
+fi
+
+# Clean up
+find $SAVE_DIR -name "*.tar.bz2" -type f -printf '%T@ %p\n' -mmin +$RETENTION | sort -nr | tail -n +$KEEP | awk '{ print $2 }' | xargs -r rm >> $LOG_FILE 2>&1
+
+exit 0