Browse Source

Add Dropbox backup

lj2007331@gmail.com 6 years ago
parent
commit
579ea4fa09
2 changed files with 48 additions and 1 deletions
  1. 31 0
      backup.sh
  2. 17 1
      backup_setup.sh

+ 31 - 0
backup.sh

@@ -98,6 +98,17 @@ DB_GDRIVE_BK() {
   done
 }
 
+DB_DROPBOX_BK() {
+  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}'`
+    /usr/local/bin/dbxcli put ${backup_dir}/${DB_FILE} `date +%F`/${DB_FILE}
+    [ $? -eq 0 ] && /usr/local/bin/dbxcli rm -f `date +%F --date="${expired_days} days ago"` > /dev/null 2>&1
+  done
+}
+
 WEB_LOCAL_BK() {
   for W in `echo ${website_name} | tr ',' ' '`
   do
@@ -213,6 +224,22 @@ WEB_GDRIVE_BK() {
   done
 }
 
+WEB_DROPBOX_BK() {
+  for W in `echo ${website_name} | tr ',' ' '`
+  do
+    [ ! -e "${wwwroot_dir}/${WebSite}" ] && { echo "[${wwwroot_dir}/${WebSite}] not exist"; break; }
+    [ ! -e "${backup_dir}" ] && mkdir -p ${backup_dir}
+    PUSH_FILE="${backup_dir}/Web_${W}_$(date +%Y%m%d_%H).tgz"
+    if [ ! -e "${PUSH_FILE}" ]; then
+      pushd ${wwwroot_dir} > /dev/null
+      tar czf ${PUSH_FILE} ./$W
+      popd > /dev/null
+    fi
+    /usr/local/bin/dbxcli put ${PUSH_FILE} `date +%F`/${PUSH_FILE##*/}
+    [ $? -eq 0 ] && /usr/local/bin/dbxcli rm -f `date +%F --date="${expired_days} days ago"` > /dev/null 2>&1
+  done
+}
+
 for DEST in `echo ${backup_destination} | tr ',' ' '`
 do
   if [ "${DEST}" == 'local' ]; then
@@ -245,4 +272,8 @@ do
     [ -n "`echo ${backup_content} | grep -ow db`" ] && DB_GDRIVE_BK
     [ -n "`echo ${backup_content} | grep -ow web`" ] && WEB_GDRIVE_BK
   fi
+  if [ "${DEST}" == 'dropbox' ]; then
+    [ -n "`echo ${backup_content} | grep -ow db`" ] && DB_DROPBOX_BK
+    [ -n "`echo ${backup_content} | grep -ow web`" ] && WEB_DROPBOX_BK
+  fi
 done

+ 17 - 1
backup_setup.sh

@@ -39,10 +39,11 @@ while :; do echo
   echo -e "\t${CMSG}5${CEND}. UPYUN"
   echo -e "\t${CMSG}6${CEND}. QINIU"
   echo -e "\t${CMSG}7${CEND}. Google Drive"
+  echo -e "\t${CMSG}8${CEND}. Dropbox"
   read -e -p "Please input numbers:(Default 1 press Enter) " desc_bk
   desc_bk=${desc_bk:-'1'}
   array_desc=(${desc_bk})
-  array_all=(1 2 3 4 5 6 7)
+  array_all=(1 2 3 4 5 6 7 8)
   for v in ${array_desc[@]}
   do
     [ -z "`echo ${array_all[@]} | grep -w ${v}`" ] && desc_flag=1
@@ -64,6 +65,7 @@ done
 [ -n "`echo ${desc_bk} | grep -w 5`" ] && sed -i 's@^backup_destination=.*@&,upyun@' ./options.conf
 [ -n "`echo ${desc_bk} | grep -w 6`" ] && sed -i 's@^backup_destination=.*@&,qiniu@' ./options.conf
 [ -n "`echo ${desc_bk} | grep -w 7`" ] && sed -i 's@^backup_destination=.*@&,gdrive@' ./options.conf
+[ -n "`echo ${desc_bk} | grep -w 8`" ] && sed -i 's@^backup_destination=.*@&,dropbox@' ./options.conf
 sed -i 's@^backup_destination=,@backup_destination=@' ./options.conf
 
 while :; do echo
@@ -431,3 +433,17 @@ if [ -n "`echo ${desc_bk} | grep -w 7`" ]; then
     fi
   done
 fi
+
+if [ -n "`echo ${desc_bk} | grep -w 8`" ]; then
+  if [ ! -e "/usr/local/bin/dbxcli" ]; then
+    if [ "${OS_BIT}" == '64' ]; then
+      wget -qc http://mirrors.linuxeye.com/oneinstack/src/dbxcli-linux-amd64 -O /usr/local/bin/dbxcli
+    fi
+    chmod +x /usr/local/bin/dbxcli
+  fi
+  while :; do echo
+    if dbxcli account; then
+      break
+    fi
+  done
+fi