opt-cc/backup/backup.sh

40 lines
1009 B
Bash
Raw Normal View History

2017-07-15 11:26:33 +02:00
#!/usr/bin/env bash
2017-07-15 12:03:38 +02:00
# execute script in its location folder
cd $(dirname $0)
2017-07-15 11:26:33 +02:00
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)
}
2017-05-27 23:35:31 +02:00
# array of available collection names
col=(app_user awarding decoration rank squad user promotion player war)
2017-05-27 23:35:31 +02:00
for i in "${col[@]}"
do
# provide date for restore process, if data import is needed
if [ -z "$1" ]
2017-05-27 23:35:31 +02:00
then
2017-08-26 18:35:00 +02:00
DATE=$(date '+%Y-%m-%d')
mongoexport --db cc --collection $i --out ${DATE}/collections/${i}.json;
cp -R ../api/resource ${DATE}/
tar -zcf ${DATE}.tar.gz ${DATE}
rm -R ${DATE}
2017-07-15 11:26:33 +02:00
if [ $(ls -l | grep -c ^d) -gt 5 ]; then
deleteOldest
fi
2017-05-27 23:35:31 +02:00
else
2017-08-26 18:35:00 +02:00
tar -xzf ${1}.tar.gz
mongoimport --db cc --collection $i --drop --file ${1}/collections/${i}.json
rm -rf ../api/resource
cp -Rv ${1}/resource ../api/
2017-08-26 18:35:00 +02:00
rm -R ${1}
2017-05-27 23:35:31 +02:00
fi
done