ソースを参照

Update exclude patten

pengm01 3 年 前
コミット
5a94d82823
1 ファイル変更13 行追加5 行削除
  1. 13 5
      server_file_backup.sh

+ 13 - 5
server_file_backup.sh

@@ -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