| 
									
										
										
										
											2010-11-26 13:27:16 -05:00
										 |  |  | #!/bin/sh
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-26 13:54:26 -05:00
										 |  |  | MONGODB_SHELL='mongo' | 
					
						
							|  |  |  | DUMP_UTILITY='mongodump' | 
					
						
							| 
									
										
										
										
											2010-11-26 13:27:16 -05:00
										 |  |  | DB_NAME='newsblur' | 
					
						
							| 
									
										
										
										
											2011-01-04 09:05:11 -05:00
										 |  |  | COLLECTIONS="classifier_tag classifier_author classifier_feed classifier_title userstories starred_stories" | 
					
						
							| 
									
										
										
										
											2010-11-26 13:27:16 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-26 13:40:09 -05:00
										 |  |  | date_now=`date +%Y_%m_%d_%H_%M` | 
					
						
							| 
									
										
										
										
											2010-11-26 13:54:26 -05:00
										 |  |  | dir_name='backup_mongo_'${date_now} | 
					
						
							|  |  |  | file_name='backup_mongo_'${date_now}'.bz2' | 
					
						
							| 
									
										
										
										
											2010-11-26 13:27:16 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | log() { | 
					
						
							|  |  |  |     echo $1 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | do_cleanup(){ | 
					
						
							| 
									
										
										
										
											2010-11-26 14:09:29 -05:00
										 |  |  |     rm -rf backup_mongo_*  | 
					
						
							| 
									
										
										
										
											2010-11-26 13:27:16 -05:00
										 |  |  |     log 'cleaning up....' | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | do_backup(){ | 
					
						
							| 
									
										
										
										
											2010-11-26 13:35:19 -05:00
										 |  |  |     log 'snapshotting the db and creating archive' | 
					
						
							| 
									
										
										
										
											2010-11-26 13:40:09 -05:00
										 |  |  |     # ${MONGODB_SHELL} admin fsync_lock.js | 
					
						
							| 
									
										
										
										
											2010-11-26 13:35:19 -05:00
										 |  |  |     for collection in $COLLECTIONS | 
					
						
							|  |  |  |     do | 
					
						
							| 
									
										
										
										
											2010-11-26 14:26:08 -05:00
										 |  |  |         ${DUMP_UTILITY} --db ${DB_NAME} --collection $collection -o ${dir_name} | 
					
						
							| 
									
										
										
										
											2010-11-26 13:35:19 -05:00
										 |  |  |     done | 
					
						
							| 
									
										
										
										
											2010-11-26 13:27:16 -05:00
										 |  |  |     tar -jcf $file_name ${dir_name} | 
					
						
							| 
									
										
										
										
											2010-11-26 13:40:09 -05:00
										 |  |  |     # ${MONGODB_SHELL} admin fsync_unlock.js | 
					
						
							| 
									
										
										
										
											2010-11-26 13:27:16 -05:00
										 |  |  |     log 'data backd up and created snapshot' | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | save_in_s3(){ | 
					
						
							|  |  |  |     log 'saving the backup archive in amazon S3' && \
 | 
					
						
							| 
									
										
										
										
											2010-11-26 14:09:29 -05:00
										 |  |  |     python s3.py set ${file_name} && \
 | 
					
						
							| 
									
										
										
										
											2010-11-26 13:27:16 -05:00
										 |  |  |     log 'data backup saved in amazon s3' | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-26 14:09:29 -05:00
										 |  |  | do_backup && save_in_s3 && do_cleanup |