|
@@ -1,13 +1,12 @@
|
|
|
#!/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
|
|
|
+# Usage: ./server_file_backup.sh $BACKUP_DIR $SAVE_DIR
|
|
|
+# Or: curl -s https://git.immiles.com/miles/scripts/raw/master/server_file_backup.sh | bash -s $BACKUP_DIR $SAVE_DIR
|
|
|
|
|
|
#set -ex
|
|
|
|
|
|
# Set Var
|
|
|
BACKUP_DIR=$1
|
|
|
SAVE_DIR=$2
|
|
|
-EXCLUDE_DIR=$3
|
|
|
DATE=`date +"%Y%m%d_%H%M%S"`
|
|
|
LOG_FILE=$SAVE_DIR/file_backup.log
|
|
|
FILE_BASENAME=`echo $BACKUP_DIR | sed 's#/#_#g'`
|
|
@@ -20,7 +19,16 @@ echo "--------------------------$DATE------------------------" >> $LOG_FILE
|
|
|
echo "[BEGIN] Backup [$BACKUP_DIR]" >> $LOG_FILE
|
|
|
|
|
|
# Backup
|
|
|
-tar --exclude="$EXCLUDE_DIR" -jpcf $SAVE_DIR/$FILE_BASENAME.$DATE.tar.bz2 $BACKUP_DIR >> $LOG_FILE 2>&1
|
|
|
+exclude=( `df -h | awk '{print $6}' | grep -E 'google|aliyun'` )
|
|
|
+exclude_options=()
|
|
|
+for x in "${exclude[@]}"; do
|
|
|
+ exclude_options+=(--exclude="$x")
|
|
|
+done
|
|
|
+
|
|
|
+tar_cmd="tar ${exclude_options[@]} -jpcf $SAVE_DIR/$FILE_BASENAME.$DATE.tar.bz2 $BACKUP_DIR >> $LOG_FILE 2>&1"
|
|
|
+echo $tar_cmd >> $LOG_FILE
|
|
|
+
|
|
|
+eval $tar_cmd
|
|
|
|
|
|
if [ $? == "0" ];then
|
|
|
echo "[SUCCESS] Files in [$SAVE_DIR] backup" >> $LOG_FILE
|
|
@@ -34,4 +42,4 @@ 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
|
|
|
+exit 0
|