Advertisement
leos1971

domoticz_backup.sh

May 16th, 2013
2,601
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.98 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3.  
  4. ### Backup script v0.3 beta
  5. ### Please be sure all dependencies are satisfied.
  6. ### Needed packages:
  7. ### - sshpass
  8. ### - sendemail
  9. ### - dropbox_uploader by Andrea Fabrizi
  10. ###                    https://github.com/andreafabrizi/Dropbox-Uploader
  11. ### patch for smtp ssl: http://raspberrypi.stackexchange.com/questions/2118/sendemail-failure
  12.  
  13.  
  14. ### USER CONFIGURABLE PARAMETERS
  15.  
  16. MODE="dropbox"              # available modes: scp, ftp, mail, local, dropbox
  17.  
  18. # LOCAL/FTP/SCP/MAIL PARAMETERS
  19. SERVER="SMTP.SERVER.TLD"        # used for: ftp mail scp
  20. USERNAME="USERNAME"         # used for: ftp mail scp
  21. PASSWORD="PASSWORD"         # used for: ftp mail scp
  22. PORT="587"              # used for: mail scp
  23. WHERE="."               # used for: mail scp
  24. RCPT="DESTINATION MAIL ADDRESS"     # used for: mail
  25. DESTDIR="/opt/backup"           # used for: local
  26.  
  27. ### END OF USER CONFIGURABLE PARAMETERS
  28.  
  29.  
  30. DOMO_IP=`/sbin/ifconfig | /bin/grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | /bin/grep -Eo '([0-9]*\.){3}[0-9]*' | /bin/grep -v '127.0.0.1'`
  31. DOMO_PORT=`/bin/grep "Webserver started on port:" /tmp/domoticz.log |/usr/bin/cut -d ":" -f 2|/usr/bin/cut -d " " -f 2`
  32.  
  33. TIMESTAMP=`/bin/date +%Y%m%d%H%M%S`
  34. BACKUPFILE="domoticz_$TIMESTAMP.db"
  35. BACKUPFILEGZ="$BACKUPFILE".gz
  36.  
  37.  
  38. /usr/bin/curl -s http://$DOMO_IP:$DOMO_PORT/backupdatabase.php > /tmp/$BACKUPFILE
  39. gzip -9 /tmp/$BACKUPFILE
  40.  
  41.  
  42. case $MODE in
  43.   scp)
  44.     /usr/bin/sshpass -p $PASSWORD /usr/bin/scp -P $PORT /tmp/$BACKUPFILEGZ $USERNAME@$SERVER:$WHERE
  45.   ;;
  46.  
  47.   ftp)
  48.     curl -s --disable-epsv -v -T"/tmp/$BACKUPFILEGZ" -u"$USERNAME:$PASSWORD" "ftp://$SERVER/"
  49.   ;;
  50.  
  51.   local)
  52.     echo local
  53.     cp /tmp/$BACKUPFILEGZ $DESTDIR
  54.     echo "Your local copy of database is now on $DESTDIR"
  55.   ;;
  56.  
  57.   mail)
  58.     /usr/bin/sendemail -f $RCPT -t $RCPT -u "Mail from Domoticz" -m "Backup of Domoticz DB" -s $SERVER:$PORT -o tls=yes -xu $USERNAME -xp $PASSWORD -a /tmp/$BACKUPFILEGZ
  59.  
  60.   ;;
  61.  
  62.   dropbox)
  63.     /opt/bin/dropbox_uploader.sh upload /tmp/$BACKUPFILEGZ
  64.   ;;
  65.  
  66. esac
  67.  
  68. /bin/rm /tmp/$BACKUPFILEGZ
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement