Browse Source

Update Google drive subfolder backup

lj2007331@gmail.com 6 years ago
parent
commit
a8054c7604
1 changed files with 20 additions and 10 deletions
  1. 20 10
      backup.sh

+ 20 - 10
backup.sh

@@ -94,17 +94,22 @@ DB_S3_BK() {
 }
 
 DB_GDRIVE_BK() {
+  # get the IP information
+  IPADDR=$(../include/get_ipaddr.py)
+  IPADDR=${IPADDR:-127.0.0.1}
+  Parent_root_id=$(/usr/local/bin/gdrive list --no-header -q "trashed = false and name = '${IPADDR}'" | awk '{print $1}')
+  [ -z "${Parent_root_id}" ] && Parent_root_id=$(/usr/local/bin/gdrive mkdir ${IPADDR} | awk '{print $2}')
+  Parent_sub_id=$(/usr/local/bin/gdrive list --no-header -q "'${Parent_root_id}' in parents and trashed = false and name = '`date +%F`'" | awk '{print $1}')
+  [ -z "${Parent_sub_id}" ] && Parent_sub_id=$(/usr/local/bin/gdrive mkdir -p ${Parent_root_id} `date +%F` | awk '{print $2}')
   for D in `echo ${db_name} | tr ',' ' '`
   do
     ./db_bk.sh ${D}
     DB_GREP="DB_${D}_`date +%Y%m%d`"
     DB_FILE=`ls -lrt ${backup_dir} | grep ${DB_GREP} | tail -1 | awk '{print $NF}'`
-    Parent_id=$(/usr/local/bin/gdrive list --no-header -q "name = '`date +%F`'" | awk '{print $1}')
-    [ -z ${Parent_id} ] && Parent_id=$(/usr/local/bin/gdrive mkdir `date +%F` | awk '{print $2}')
-    /usr/local/bin/gdrive upload -p ${Parent_id} ${backup_dir}/${DB_FILE}
+    /usr/local/bin/gdrive upload -p ${Parent_sub_id} ${backup_dir}/${DB_FILE}
     if [ $? -eq 0 ]; then
-      Parent_id=$(/usr/local/bin/gdrive list --no-header -q "name = '`date +%F --date="${expired_days} days ago"`'" | awk '{print $1}')
-      [ -n ${Parent_id} ] && /usr/local/bin/gdrive delete -r -p ${Parent_id} > /dev/null 2>&1
+      Parent_expired_id=$(/usr/local/bin/gdrive list --no-header -q "'${Parent_root_id}' in parents and trashed = false and name = '`date +%F --date="${expired_days} days ago"`'" | awk '{print $1}')
+      [ -n "${Parent_expired_id}" ] && /usr/local/bin/gdrive delete -r ${Parent_expired_id} > /dev/null 2>&1
     fi
   done
 }
@@ -231,6 +236,13 @@ WEB_S3_BK() {
 }
 
 WEB_GDRIVE_BK() {
+  # get the IP information
+  IPADDR=$(../include/get_ipaddr.py)
+  IPADDR=${IPADDR:-127.0.0.1}
+  Parent_root_id=$(/usr/local/bin/gdrive list --no-header -q "trashed = false and name = '${IPADDR}'" | awk '{print $1}')
+  [ -z "${Parent_root_id}" ] && Parent_root_id=$(/usr/local/bin/gdrive mkdir ${IPADDR} | awk '{print $2}')
+  Parent_sub_id=$(/usr/local/bin/gdrive list --no-header -q "'${Parent_root_id}' in parents and trashed = false and name = '`date +%F`'" | awk '{print $1}')
+  [ -z "${Parent_sub_id}" ] && Parent_sub_id=$(/usr/local/bin/gdrive mkdir -p ${Parent_root_id} `date +%F` | awk '{print $2}')
   for W in `echo ${website_name} | tr ',' ' '`
   do
     [ ! -e "${wwwroot_dir}/${WebSite}" ] && { echo "[${wwwroot_dir}/${WebSite}] not exist"; break; }
@@ -241,12 +253,10 @@ WEB_GDRIVE_BK() {
       tar czf ${PUSH_FILE} ./$W
       popd > /dev/null
     fi
-    Parent_id=$(/usr/local/bin/gdrive list --no-header -q "name = '`date +%F`'" | awk '{print $1}')
-    [ -z ${Parent_id} ] && Parent_id=$(/usr/local/bin/gdrive mkdir `date +%F` | awk '{print $2}')
-    /usr/local/bin/gdrive upload -p ${Parent_id} ${PUSH_FILE}
+    /usr/local/bin/gdrive upload -p ${Parent_sub_id} ${PUSH_FILE} 
     if [ $? -eq 0 ]; then
-      Parent_id=$(/usr/local/bin/gdrive list --no-header -q "name = '`date +%F --date="${expired_days} days ago"`'" | awk '{print $1}')
-      [ -n ${Parent_id} ] && /usr/local/bin/gdrive delete -r -p ${Parent_id} > /dev/null 2>&1
+      Parent_expired_id=$(/usr/local/bin/gdrive list --no-header -q "'${Parent_root_id}' in parents and trashed = false and name = '`date +%F --date="${expired_days} days ago"`'" | awk '{print $1}')
+      [ -n "${Parent_expired_id}" ] && /usr/local/bin/gdrive delete -r ${Parent_expired_id} > /dev/null 2>&1
     fi
   done
 }