Advertisement
Guest User

Untitled

a guest
Jun 10th, 2017
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.95 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Enumerates the ISPConfig database for sites to backup and upload to Amazon S3
  4.  
  5. main() {
  6. #Defaults
  7. dbserver=127.0.0.1
  8. user=backupuser
  9. password=MyPassword
  10. bakdir=/tmp/
  11. comp_pgm='xz -9e'
  12. comp_ext=xz
  13. bucket=MyBucket
  14.  
  15. for site in `mysql -h $dbserver -u $user -p$password dbispconfig -Bse 'select CONCAT_WS(",",domain,system_user,system_group,document_root) from web_domain where type="vhost";' `
  16. do
  17. #if [ "$tbl" == "information_schema" ] || [ "$tbl" == "performance_schema" ] || [ "$tbl" == "mysql" ] || [ "$tbl" == "test" ]
  18. #then
  19. # continue
  20. #fi
  21. site_backup "$site"
  22. #echo "Backing up database: $tbl"
  23. #mysql_backup "$tbl"
  24. #s3cmd --encrypt put $filename s3://$bucket
  25. #rm $filename
  26. done
  27.  
  28. }
  29.  
  30. ## Create a compressed copy of the public web folder
  31. ## untar backup to folder tar xf backup.tar.xz -C /destination
  32. function site_backup {
  33.  
  34. domain=`echo $1 | cut -d, -f1`
  35. user=`echo $1 | cut -d, -f2`
  36. group=`echo $1 | cut -d, -f3`
  37. folder=`echo $1 | cut -d, -f4`
  38.  
  39. ## Filename with date.
  40. filename=$bakdir$domain-$user-$group-`/bin/date +\%Y\%m\%d`.tar
  41. ## Filename without date.
  42. #filename=$bakdir$domain-$user-$group.tar
  43. echo "Compressing: $domain"
  44. tar -cf $filename -C $folder/web .
  45. pxz -z -9e $filename
  46. #lrzip -L 9 $filename -o $filename.lrzip
  47. ## Reduced Redundancy for backups less than 30 days. Use Infrequent Access/Glacier for > 30 days
  48. s3cmd --encrypt --server-side-encryption --storage-class=STANDARD --acl-private put $filename.xz s3://$bucket/sites/$domain/
  49. #rm $filename
  50. rm $filename.xz
  51.  
  52. }
  53.  
  54. ## NOT USED IN THIS SCRIPT
  55. ## Create a compressed copy of mysql database and store it in var filename
  56. function mysql_backup {
  57.  
  58. filename=$bakdir$1-hosting1-`/bin/date +\%Y\%m\%d`.sql.$comp_ext
  59.  
  60. mysqldump --no-create-db \
  61. --opt \
  62. --add-drop-table \
  63. -Q \
  64. -h $dbserver \
  65. -u $user \
  66. -p$password \
  67. $1 | \
  68. $comp_pgm > \
  69. $filename
  70.  
  71. }
  72.  
  73. main "$@"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement