MongoDB Restore from Zip File . zMongoRestore.sh CRM CRM.zip #!/bin/shEscape="\033";Reset="${Escape}[0m";BlackF="${Escape}[30m";    RedF="${Escape}[31m";  GreenF="${Escape}[32m";YellowF="${Escape}[33m";zConfirmYesNo () {  zCommand=$*  printf "\n"  printf "${GreenF} '$zCommand' will be executed. Are you sure? [Yes|No]: ${BlueF}Yes ${Reset}"  read zComfirm  if [[ "$zComfirm" =~ ^(y|Y|Yes|YES|e|E|Evet|EVET)$ ]]  then  printf "${RedF} $zCommand ${Reset}\n"  $zCommand  elif [[ "$zComfirm" =~ ^(n|N|No|NO|h|H|Hayır|HAYIR)$ ]]  then  printf "${RedF} $zCommand ${Reset}\n"  else  printf "${RedF} $zCommand ${Reset}\n"  $zCommand  fi}mongoRestore () {  zDatabase=$1  zDatabaseZipFile=$2####################   if [[ "$zDatabase" = "" ]]  then  echo 'show dbs' | mongo  printf "${RedF} Database name is empty! Please enter database name: ${BlueF}"  read zDatabase  printf "${Reset}\n"  else  printf "${RedF} Pre Entered zDatabase:$zDatabase ${Reset}\n"  fi  if [[ "$zDatabaseZipFile" = "" ]]  then  ls -ahltr  printf "${RedF} Database file name is empty! Please enter database file name: ${BlueF}"  read zDatabaseZipFile  printf "${Reset}\n"  else  printf "${RedF} Pre Entered zDatabaseZipFile:$zDatabaseZipFile ${Reset}\n"  fi  zToday=`date +"%Y_%m_%d"`  zHomeDir=`echo ~`  zBackUpFolder="$zHomeDir/$zDatabase-$zToday"  printf "zDatabase:${GreenF} $zDatabase ${Reset}\n"  printf "zDatabaseZipFile:${GreenF} $zDatabaseZipFile ${Reset}\n"  printf "zBackUpFolder:${GreenF} $zBackUpFolder ${Reset}\n"  zCommand="unzip $zDatabaseZipFile -d $zDatabase-$zToday"  zConfirmYesNo $zCommand  zCommand="ls -lhSr --color=auto $zBackUpFolder/"  zConfirmYesNo $zCommand ##################### Drop Database  printf "\n ${GreenF} Do you want drop all collections from: $zDatabase [Yes|No]: ${BlueF}No"  read zDropDatabase  printf "${Reset}\n"   if [[ "$zDropDatabase" =~ ^(y|Y|Yes|YES)$ ]]  then  printf "${RedF} Database all collections will be dropped! ${Reset}\n"  mongo $zDatabase --eval 'printjson(db.dropDatabase())'  else  printf "${GreenF} Database will not be dropped. ${Reset}\n"  fi ##################### Drop Collections  printf "${GreenF} Do you want to first drop then insert collections? [Yes|No]: ${BlueF}Yes"  read zDropCollection  printf "${Reset}\n"  zDropDatabaseCommand=""  if [[ "$zDropCollection" =~ ^(y|Y|Yes|YES)$ ]]  then  printf "${RedF} Database will be dropped! ${Reset}\n"  zDropDatabaseCommand="--drop"  elif [[ "$zDropCollection" =~ ^(n|N|No|NO)$ ]]  then  printf "${GreenF} Database will NOT be dropped. All records will be inserted. ${Reset}\n"  zDropDatabaseCommand=""  else  printf "${RedF} Database will be dropped! ${Reset}\n"  zDropDatabaseCommand="--drop"  fi  zCommand="mongorestore $zDropDatabaseCommand --db $zDatabase $zBackUpFolder/"  zConfirmYesNo $zCommand ####################  printf "\n ${GreenF} Do you want to repair DB $zDatabase [Yes|No]: ${BlueF}Yes"  read zRepairDatabase  printf "${Reset}\n"   if [[ "$zRepairDatabase" =~ ^(n|N|No|NO)$ ]]  then  printf "${RedF} Database will NOT be repaired! ${Reset}\n"  else  printf "${GreenF} Database will be repaired! ${Reset}\n"  mongo $zDatabase --eval 'printjson(db.repairDatabase())'  fi####################   zCommand="ls -l --color=auto $zHomeDir"  zConfirmYesNo $zCommand  zCommand="rm -r $zBackUpFolder/"  zConfirmYesNo $zCommand  zCommand="ls -l --color=auto $zHomeDir"  $zCommand  echo "show dbs" | mongo}zDatabase=$1zDatabaseZipFile=$2echo "usage: '. zMongoRestore.sh CRM CRM.zip'"printf "\n\n"mongoRestore $zDatabase $zDatabaseZipFile