Guest User

Untitled

a guest
Oct 19th, 2017
447
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.45 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # mongo-backup.sh
  4. # Script to automate MongoDB Backups
  5. #
  6. # Requirements:
  7. # mongodump
  8. # s3cmd
  9. #
  10. # Author:
  11. # Eduardo Hernacki <eduardohki@gmail.com>
  12. #
  13. # Modify:
  14. # Guilherme Calcette <guilherme.calcette@gmail.com>
  15. #
  16. # Version:
  17. # 1.0 - 2017/10/18
  18.  
  19. # Bucket destino aws s3
  20. TIMESTAMP=`date +%F-%H-%M`
  21. S3_BUCKET_NAME="< bucket name >" #replace with your bucket name on Amazon S3
  22. S3_BUCKET_PATH="< bucket path name >" #replace with your bucket path
  23.  
  24. # Limite de arquivos backups no bucket
  25. RM_OLD_FILES=30
  26.  
  27. # Backup destination
  28. DUMP_DIR="< /diretorio/backup >" #replace with your backup DIR
  29. DUMP_FILE="< filename >-$TIMESTAMP" #replace with your backup file name
  30. mkdir $DUMP_DIR/$DUMP_FILE
  31.  
  32. # Destino do arquivo de logfile
  33. LOG_FILE=$DUMP_DIR/$DUMP_FILE/$DUMP_FILE.log
  34.  
  35. # Credenciais MongoDB
  36. MONGO_USER=adminmongo
  37. MONGO_PASS=passadminmongo
  38. MONGO_AUTHDB=admin
  39.  
  40. # Registra inicio de execução no arquivo de log
  41. echo "[$(date +%Y/%m/%d\ %H:%M:%S)] Starting mongodump" >> $LOG_FILE
  42.  
  43. # Executa o dump do MongoDB no diretorio especificado
  44. mongodump --host localhost --username $MONGO_USER --password $MONGO_PASS --authenticationDatabase $MONGO_AUTHDB --out $DUMP_DIR/$DUMP_FILE >> $LOG_FILE 2>&1
  45.  
  46. # Checks the dump execution
  47. if [ $? -eq 0 ]; then
  48. echo "[$(date +%Y/%m/%d\ %H:%M:%S)] mongodump successfully created" >> $LOG_FILE
  49. OUTPUT="OK: MongoDB Dump successfully created"
  50. EXITCODE=0
  51. else
  52. echo "[$(date +%Y/%m/%d\ %H:%M:%S)] mongodump finished with errors" >> $LOG_FILE
  53. OUTPUT="CRITICAL: Errors creating MongoDB Dump! Please verify the log \"$LOG_FILE\" for more details"
  54. EXITCODE=2
  55. fi
  56.  
  57. echo $OUTPUT
  58.  
  59. echo $OUTPUT
  60.  
  61. # Compactando
  62. echo Compactando os arquivos
  63. cd $DUMP_DIR && tar -cf $DUMP_FILE.tar $DUMP_FILE
  64.  
  65. #Evniando para AWS S3
  66. echo Enviando Backup para AWS S3
  67. s3cmd put -p $DUMP_DIR/$DUMP_FILE.tar s3://$S3_BUCKET_NAME/$S3_BUCKET_PATH/
  68. rm -rf $DUMP_DIR/$DUMP_FILE
  69.  
  70. #Removendo Backup com mais de 30 DIAS
  71. echo Removendo arquivos com mais de $RM_OLD_FILES Dias.
  72. s3cmd ls s3://$S3_BUCKET_NAME/$S3_BUCKET_PATH/ | while read -r line;
  73. do
  74. createDate=`echo $line|awk {'print $1" "$2'}`
  75. createDate=`date -d"$createDate" +%s`
  76. olderThan=`date -d"$RM_OLD_FILES" +%s`
  77. if [[ $createDate -lt $olderThan ]]
  78. then
  79. fileName=`echo $line|awk {'print $4'}`
  80. echo $fileName
  81. if [[ $fileName != "" ]]
  82. then
  83. echo removendo aquivos
  84. echo $filename
  85. s3cmd del "$fileName"
  86. fi
  87. fi
  88. done;
  89.  
  90. exit $EXITCODE
Add Comment
Please, Sign In to add comment