From b793db4e31ff4a08aa031048b39e80c869f1eab7 Mon Sep 17 00:00:00 2001 From: Chris Sewell Date: Fri, 29 Mar 2013 22:35:24 -0400 Subject: [PATCH] Initial commit --- .gitattributes | 22 +++++++ .gitignore | 163 +++++++++++++++++++++++++++++++++++++++++++++++++ mongotos3.sh | 61 ++++++++++++++++++ 3 files changed, 246 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 mongotos3.sh diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..412eeda --- /dev/null +++ b/.gitattributes @@ -0,0 +1,22 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Custom for Visual Studio +*.cs diff=csharp +*.sln merge=union +*.csproj merge=union +*.vbproj merge=union +*.fsproj merge=union +*.dbproj merge=union + +# Standard to msysgit +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5ebd21a --- /dev/null +++ b/.gitignore @@ -0,0 +1,163 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results +[Dd]ebug/ +[Rr]elease/ +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.vspscc +.builds +*.dotCover + +## TODO: If you have NuGet Package Restore enabled, uncomment this +#packages/ + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf + +# Visual Studio profiler +*.psess +*.vsp + +# ReSharper is a .NET coding add-in +_ReSharper* + +# Installshield output folder +[Ee]xpress + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish + +# Others +[Bb]in +[Oo]bj +sql +TestResults +*.Cache +ClientBin +stylecop.* +~$* +*.dbmdl +Generated_Code #added for RIA/Silverlight projects + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML + + + +############ +## Windows +############ + +# Windows image file caches +Thumbs.db + +# Folder config file +Desktop.ini + + +############# +## Python +############# + +*.py[co] + +# Packages +*.egg +*.egg-info +dist +build +eggs +parts +bin +var +sdist +develop-eggs +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg + +# Mac crap +.DS_Store diff --git a/mongotos3.sh b/mongotos3.sh new file mode 100644 index 0000000..ea1064e --- /dev/null +++ b/mongotos3.sh @@ -0,0 +1,61 @@ +#!/bin/sh + +# change these variables to what you need +S3BUCKET=bucketname +FILENAME=filename +# the following line prefixes the backups with the defined directory. it must be blank or end with a / +S3PATH=s3path + +MONGODUMPPATH=dumppath + +TMP_PATH=tmppath + +TIMESTAMP=$(date +".%m.%d.%Y") +DAY=$(date +"%d") +DAYOFWEEK=$(date +"%A") + +PERIOD=${1-day} + +if [ ${PERIOD} = "auto" ]; then + if [ ${DAY} = "01" ]; then + PERIOD=month + elif [ ${DAYOFWEEK} = "Sunday" ]; then + PERIOD=week + else + PERIOD=day + fi +fi + +echo "Selected period: $PERIOD." + +echo "Starting backing up the database to a file..." + +# dump mongo +mongodump --out ${MONGODUMPPATH} + +echo "Done backing up the database to a file." +echo "Starting compression..." + +tar cvzf ${TMP_PATH}${FILENAME}${TIMESTAMP}.tar.gz ${MONGODUMPPATH} + +echo "Done compressing the backup file." + +# we want at least two backups, two months, two weeks, and two days +echo "Removing old backups (2 ${PERIOD}s ago)..." +s3cmd del --recursive s3://${S3BUCKET}/${S3PATH}previous_${PERIOD}/ +echo "Old backups removed." + +echo "Moving the backups from past $PERIOD to another folder..." +s3cmd mv --recursive s3://${S3BUCKET}/${S3PATH}${PERIOD}/ s3://${S3BUCKET}/${S3PATH}previous_${PERIOD}/ +echo "Past backup moved." + +# upload mongo backup +echo "Uploading the new backup..." +s3cmd put -f ${TMP_PATH}${FILENAME}${TIMESTAMP}.tar.gz s3://${S3BUCKET}/${S3PATH}${PERIOD}/ +echo "New backup uploaded." + +echo "Removing the cache files..." +# remove tmp files +rm -rf ${TMP_PATH} +echo "Files removed." +echo "All done."