Guest User

Untitled

a guest
Mar 18th, 2016
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.48 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Place in /usr/share/backup/
  4. # and make executable
  5. # chmod 0744 dup-backup.sh
  6. # install:
  7. # apt-get install duplicity python-gdata python-gobject-2 python-paramiko
  8. ## Remeber to change Google drive user name and Google drive folder
  9. ## And change Email
  10. # Must run as root for system wide backups
  11. # su -u root
  12. # For cron job:
  13. #su -l root # login to root to edit root's cron jobs
  14. #crontab -e
  15. #0 1 * * * /usr/share/backup/dup-backup.sh # will run at 00:00 every day
  16.  
  17. # GPG Password
  18. # Use for encrypting all data on remote storing host
  19. # No spaces
  20. export PASSPHRASE=very hard password
  21.  
  22. # GDrive Password
  23. # Password for logging into Google drive
  24. # No spaces
  25. export FTP_PASSWORD=password
  26.  
  27. echo "Started At: `date`." >>/var/log/duplicity/backup.log
  28. echo "Starting Backup." >>/var/log/duplicity/backup.log
  29. echo "" >>/var/log/duplicity/backup.log
  30.  
  31. # Make exceptions to back up. Add anything you want.
  32. # Made with the assumptions that we care about only the data
  33. # that we can restore on any machine running the current OS
  34. #
  35. # "- /file/path"
  36. # Add more if errors out
  37. cat > /usr/share/backup/filelist.txt <<EOF
  38. - /dev
  39. - /proc
  40. - /lost+found
  41. - /media
  42. - /mnt
  43. - /run
  44. - /tmp
  45. - /boot
  46. - /selinux
  47. - /root/.cache
  48. - /sys
  49. EOF
  50.  
  51. echo "Dumping databases..." >>$LOGLOC
  52. USER="root"
  53. PASSWORD="password"
  54. OUTPUTDIR="/var/db-backups"
  55.  
  56. mkdir -p $OUTPUTDIR
  57. rm "$OUTPUTDIR/*bak" > /dev/null 2>&1
  58.  
  59. databases=`mysql --user=$USER --password=$PASSWORD \
  60. -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
  61.  
  62. for db in $databases; do
  63. echo "Dumping databse: $db">>$LOGLOC
  64. mysqldump --force --opt --user=$USER --password=$PASSWORD \
  65. --databases $db 1> "$OUTPUTDIR/$db.bak" 2>NUL
  66. done
  67.  
  68. echo "Done." >>$LOGLOC
  69. echo "" >>$LOGLOC
  70.  
  71. # Loading the day of the month
  72. date=`date +%d`
  73. # Check to see if we're at the first of the month.
  74. # If so then run a full backup.
  75. # If not, then run an incremental backup
  76. # duplicity with blank options will run incremental, if fails, then run full
  77. # using duplicity full to force full backup
  78. if [ $date = 01 ]
  79. then
  80. echo "Doing Full Backup..." >>/var/log/duplicity/backup.log
  81. duplicity full --exclude-filelist /usr/share/backup/filelist.txt / gdocs://username/folder >>/var/log/duplicity/backup.log
  82. else
  83. echo "Doing Incremental Backup..." >>/var/log/duplicity/backup.log
  84. duplicity --exclude-filelist /usr/share/backup/filelist.txt / gdocs://username/folder >>/var/log/duplicity/backup.log
  85. fi
  86. echo "Done." >>/var/log/duplicity/backup.log
  87. echo "" >>/var/log/duplicity/backup.log
  88.  
  89. # Delete old backups
  90. # One full backup each month means will remove backups
  91. # older than 3 months
  92. echo "Cleaning Backups..." >>/var/log/duplicity/backup.log
  93. duplicity remove-all-but-n-full 3 --force gdocs://m@silvenga.com/vpn01 >>/var/log/duplicity/backup.log
  94. echo "Done." >>/var/log/duplicity/backup.log
  95. echo "" >>/var/log/duplicity/backup.log
  96.  
  97. # Destroying passwords saved to memory
  98. unset PASSPHRASE
  99. unset FTP_PASSWORD
  100.  
  101. # Email log
  102. echo "Backup Finished, Emailing Log..." >>/var/log/duplicity/backup.log
  103. # If you want beautiful HTML emails, requires ansifilter found on sourceforge
  104. #ansifilter -i /var/log/duplicity/backup.log -o /var/log/duplicity/backup.log.html -H
  105. #mail -a 'Content-Type: text/html' -s 'Daily Backup Report' admin@silvenga.com </var/log/duplicity/backup.log.html
  106. #rm /var/log/duplicity/backup.log.html
  107. mail -s 'Daily Backup Report' root@localhost </var/log/duplicity/backup.log
  108.  
  109. # Remove old backup log, and backup current log
  110. rm /var/log/duplicity/backup.log.bak
  111. mv /var/log/duplicity/backup.log /var/log/duplicity/backup.log.bak
  112.  
  113. # Done!
  114. exit 0
Add Comment
Please, Sign In to add comment