53 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
# execute script in its location folder
 | 
						|
cd $(dirname $0)
 | 
						|
 | 
						|
deleteOldest() {
 | 
						|
  line_num=0
 | 
						|
  while IFS=  read -r -d $'\0'; do
 | 
						|
      if [ $line_num == 1 ]; then
 | 
						|
        $(rm -rf ${REPLY})
 | 
						|
      fi
 | 
						|
      ((line_num++))
 | 
						|
  done < <(find -maxdepth 1 -type d -print0 | sort -z)
 | 
						|
}
 | 
						|
 | 
						|
# array of available collection names
 | 
						|
col=(app_user awarding decoration rank squad user promotion player war campaign)
 | 
						|
 | 
						|
if [ -z "$1" ]
 | 
						|
  then
 | 
						|
    DATE=$(date '+%Y-%m-%d')
 | 
						|
    mkdir -p ${DATE}/resource
 | 
						|
    cp -R ../api/resource/ ${DATE}/resource
 | 
						|
  else
 | 
						|
    DATE=${1}
 | 
						|
    tar -xzf ${DATE}.tar.gz
 | 
						|
    rm -rf ../api/resource
 | 
						|
    cp -Rv ${DATE}/resource ../api/
 | 
						|
 | 
						|
fi
 | 
						|
 | 
						|
for i in "${col[@]}"
 | 
						|
do
 | 
						|
  # provide date for restore process, if data import is needed
 | 
						|
  if [ -z "$1" ]
 | 
						|
    then
 | 
						|
      mongoexport --db cc --collection $i --out ${DATE}/collections/${i}.json;
 | 
						|
      if [ $(ls -l | grep -c ^d) -gt 5 ]; then
 | 
						|
        deleteOldest
 | 
						|
      fi
 | 
						|
    else
 | 
						|
      mongoimport --db cc --collection $i --drop --file ${1}/collections/${i}.json
 | 
						|
  fi
 | 
						|
done
 | 
						|
 | 
						|
if [ -z "$1" ]
 | 
						|
  then
 | 
						|
    tar -zcf ${DATE}.tar.gz ${DATE}
 | 
						|
fi
 | 
						|
 | 
						|
rm -rf ${DATE}
 | 
						|
 |