snipplrCallback({"id":52290,"title":"jasperserver-backup-script","source":"
  1. #!\/bin\/bash<\/span><\/div><\/li>
  2. ############################################################################<\/span><\/div><\/li>
  3. # JasperReports Server Backup Script.<\/span><\/div><\/li>
  4. # Written by Ernesto Ongaro in April 2011<\/span><\/div><\/li>
  5. ############################################################################<\/span><\/div><\/li>
  6. # JasperReports is free software: you can redistribute it and\/or modify it<\/span><\/div><\/li>
  7. # under the terms of the GNU Lesser General Public License as published by<\/span><\/div><\/li>
  8. # the Free Software Foundation, either version 3 of the License, or (at your<\/span><\/div><\/li>
  9. # option) any later version.<\/span><\/div><\/li>
  10.  <\/div><\/li>
  11. # This script is distributed in the hope that it will be useful,<\/span><\/div><\/li>
  12. # but WITHOUT ANY WARRANTY; without even the implied warranty of<\/span><\/div><\/li>
  13. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<\/span><\/div><\/li>
  14. # GNU Lesser General Public License for more details.<\/span><\/div><\/li>
  15. ############################################################################<\/span><\/div><\/li>
  16. # Don't just run this script, make sure to edit the options below!<\/span><\/div><\/li>
  17. ############################################################################<\/span><\/div><\/li>
  18. #set this if you're using JasperServer 3.7.1 or below<\/span><\/div><\/li>
  19. IS_PRE_4<\/span>=false<\/span><\/div><\/li>
  20. #Friendly Name for Product<\/span><\/div><\/li>
  21. PRODUCT_NAME<\/span>="JR-4.0.1-Pro"<\/span><\/div><\/li>
  22. BACKUP_DEST<\/span>="\/home\/ernesto\/Dropbox\/Backups"<\/span><\/div><\/li>
  23. FILE_NAME<\/span>="`date +%Y%m%d%H%M`<\/span>.zip"<\/span><\/div><\/li>
  24. #Delete old backups after some time<\/span><\/div><\/li>
  25. DELETE_OLD<\/span>=true<\/span><\/div><\/li>
  26. #How many days to keep<\/span><\/div><\/li>
  27. DAYS<\/span>=15<\/span><\/div><\/li>
  28.  <\/div><\/li>
  29. cd<\/span> $(<\/span>dirname<\/span> $0<\/span>)<\/span><\/div><\/li>
  30. if<\/span> [<\/span> "$IS_PRE_4<\/span>"<\/span> == "true"<\/span> ]<\/span>; then<\/span><\/div><\/li>
  31. \tJS_EXPORT_ARGS<\/span>="--everything --skip-access --output-zip"<\/span><\/div><\/li>
  32. \tBUILDOMATIC<\/span>="..\/buildomatic\/default_master.properties"<\/span>\t<\/div><\/li>
  33. \t#Check if script is in right place<\/span><\/div><\/li>
  34. \tif<\/span> [<\/span> $(<\/span>basename<\/span> $(<\/span>pwd<\/span>)<\/span>)<\/span> !<\/span>= "scripts"<\/span> ]<\/span>; then<\/span><\/div><\/li>
  35. \techo<\/span> "This script should live in the <js-install>\/scripts folder for pre 4.0 installations. Exiting."<\/span><\/div><\/li>
  36. \texit<\/span> 1<\/span><\/div><\/li>
  37. \tfi<\/span><\/div><\/li>
  38. else<\/span><\/div><\/li>
  39. \t#Then we're working with 4.0+<\/span><\/div><\/li>
  40. \tJS_EXPORT_ARGS<\/span>="--everything --output-zip"<\/span><\/div><\/li>
  41. \tBUILDOMATIC<\/span>="default_master.properties"<\/span><\/div><\/li>
  42. \tif<\/span> [<\/span> $(<\/span>basename<\/span> $(<\/span>pwd<\/span>)<\/span>)<\/span> !<\/span>= "buildomatic"<\/span> ]<\/span>; then<\/span><\/div><\/li>
  43. \techo<\/span> "This script should live in the <js-install>\/buildomatic folder for 4.0+ installations. Exiting."<\/span><\/div><\/li>
  44. \texit<\/span> 1<\/span><\/div><\/li>
  45. \tfi<\/span><\/div><\/li>
  46. fi<\/span><\/div><\/li>
  47.  <\/div><\/li>
  48. # Read information from js config file<\/span><\/div><\/li>
  49. DB_USER<\/span>=$(<\/span>sed<\/span> '\/^\\#\/d'<\/span> $BUILDOMATIC<\/span> |<\/span> grep<\/span> 'dbUsername'<\/span> |<\/span> tail<\/span> -n<\/span> 1<\/span> |<\/span> cut<\/span> -d<\/span> "="<\/span> -f2-<\/span> |<\/span> sed<\/span> 's\/^[[:space:]]*\/\/;s\/[[:space:]]*$\/\/'<\/span>)<\/span><\/div><\/li>
  50. DB_PASS<\/span>=$(<\/span>sed<\/span> '\/^\\#\/d'<\/span> $BUILDOMATIC<\/span> |<\/span> grep<\/span> 'dbPassword'<\/span> |<\/span> tail<\/span> -n<\/span> 1<\/span> |<\/span> cut<\/span> -d<\/span> "="<\/span> -f2-<\/span> |<\/span> sed<\/span> 's\/^[[:space:]]*\/\/;s\/[[:space:]]*$\/\/'<\/span>)<\/span><\/div><\/li>
  51. DB_NAME<\/span>=$(<\/span>sed<\/span> '\/^\\#\/d'<\/span> $BUILDOMATIC<\/span> |<\/span> grep<\/span> 'js.dbName'<\/span> |<\/span> tail<\/span> -n<\/span> 1<\/span> |<\/span> cut<\/span> -d<\/span> "="<\/span> -f2-<\/span> |<\/span> sed<\/span> 's\/^[[:space:]]*\/\/;s\/[[:space:]]*$\/\/'<\/span>)<\/span><\/div><\/li>
  52.  <\/div><\/li>
  53. mkdir<\/span> -p<\/span> "$BACKUP_DEST<\/span>\/$PRODUCT_NAME<\/span>"<\/span> #make sure backup destination exists<\/span><\/div><\/li>
  54. logger "Starting $PRODUCT_NAME<\/span> Repository Export"<\/span><\/div><\/li>
  55. bash<\/span> js-export.sh $JS_EXPORT_ARGS<\/span> $BACKUP_DEST<\/span>\/<\/span>$PRODUCT_NAME<\/span>\/<\/span>repo-$FILE_NAME<\/span> &&<\/span> logger "Repository backup written to repo-$FILE_NAME<\/span>"<\/span><\/div><\/li>
  56.  <\/div><\/li>
  57. logger "Starting $PRODUCT_NAME<\/span> Database Backup"<\/span><\/div><\/li>
  58. mysqldump -u<\/span> "$DB_USER<\/span>"<\/span> "--password="<\/span>"$DB_PASS<\/span>"<\/span> "$DB_NAME<\/span>"<\/span> |<\/span> zip<\/span> ><\/span> $BACKUP_DEST<\/span>\/<\/span>$PRODUCT_NAME<\/span>\/<\/span>mysql-$FILE_NAME<\/span> &&<\/span> logger "Database backup written to mysql-$FILE_NAME<\/span>"<\/span><\/div><\/li>
  59.  <\/div><\/li>
  60. if<\/span> [<\/span> "$DELETE_OLD<\/span>"<\/span> == "true"<\/span> ]<\/span>; then<\/span><\/div><\/li>
  61. find<\/span> $BACKUP_DEST<\/span>\/<\/span>$PRODUCT_NAME<\/span>\/<\/span>mysql*<\/span>.zip -mtime<\/span> +$DAYS<\/span> -exec<\/span> rm<\/span> {<\/span>}<\/span> \\;<\/div><\/li>
  62. find<\/span> $BACKUP_DEST<\/span>\/<\/span>$PRODUCT_NAME<\/span>\/<\/span>repo*<\/span>.zip -mtime<\/span> +$DAYS<\/span> -exec<\/span> rm<\/span> {<\/span>}<\/span> \\;<\/div><\/li>
  63. fi<\/span><\/div><\/li><\/ol><\/pre>","link":"https:\/\/snipplr.com\/view\/52290\/jasperserver-backup-script"});