Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

78 Zeilen
2.0KB

  1. #!/bin/sh
  2. # read environment variables
  3. . /root/env.sh
  4. LOG_PATH=/tmp
  5. ERROR=""
  6. TIMESTAMP=`date +"%Y%m%d"`
  7. # TODO: mail
  8. #Mail vars
  9. #MAIL_FROM="postmaster@{DOMAIN}"
  10. #MAIL_TO=
  11. #MAIL_SUBJECT='Nextcloud backup report'
  12. mail() {
  13. #mutt -e "set from=${MAIL_FROM}" -s "${MAIL_SUBJECT}" -- "${MAIL_TO}" <<< $1
  14. echo $1
  15. }
  16. # Backup config file (it's important for salt and secret)
  17. echo "Copying config file"
  18. cp /var/www/nextcloud/config/config.php ${NEXTCLOUD_BACKUP_PATH}/config_${TIMESTAMP}.php
  19. if [ $? != 0 ]
  20. then
  21. tmp="Error copying config file.\n"
  22. echo $tmp
  23. ERROR="$ERROR $tmp"
  24. fi
  25. # Backup Mysql DB
  26. DB_PWD=`grep dbpassword /var/www/nextcloud/config/config.php | awk -F "'" '{ print $4 }'`
  27. DB_BACKUP_FILE=${NEXTCLOUD_BACKUP_PATH}/nextcloud-sqlbkp_${TIMESTAMP}.sql
  28. mysqldump --lock-tables -u ${NEXTCLOUD_DB_USER} -p${DB_PWD} -h ${DB_HOST} ${NEXTCLOUD_DB_NAME} > ${DB_BACKUP_FILE}
  29. if [ $? != 0 ]
  30. then
  31. tmp="Error backing Nextcloud DB up\n"
  32. echo $tmp
  33. ERROR="$ERROR $tmp"
  34. fi
  35. # Compress Mysql Backup
  36. gzip ${DB_BACKUP_FILE}
  37. # Remove backups older than 5 days
  38. find ${NEXTCLOUD_BACKUP_PATH} -maxdepth 1 -mtime +5 -type f -name "nextcloud-sqlbkp*" -delete
  39. find ${NEXTCLOUD_BACKUP_PATH} -maxdepth 1 -mtime +5 -type f -name "config_*\.php" -delete
  40. # Remove old logs too
  41. find ${LOG_PATH} -mtime +5 -type f -name "backup_nextcloud*" -delete
  42. # Backup Nextcloud root folder
  43. echo "Copying Nextcloud"
  44. rsync -auv --delete --ignore-errors /var/www/nextcloud/ ${NEXTCLOUD_BACKUP_PATH}/nextcloud > ${LOG_PATH}/backup_nextcloud-${TIMESTAMP}.log 2>&1
  45. if [ $? != 0 ]
  46. then
  47. tmp="Error copying Nextcloud.\n"
  48. echo $tmp
  49. ERROR="$ERROR $tmp"
  50. fi
  51. # Backup Nextcloud Data folder
  52. echo "Copying Data"
  53. rsync -auv --delete --ignore-errors ${NEXTCLOUD_DATA_PATH}/ ${NEXTCLOUD_BACKUP_PATH}/data > ${LOG_PATH}/backup_nextcloud_data-${TIMESTAMP}.log 2>&1
  54. if [ $? != 0 ]
  55. then
  56. tmp="Error copying Data.\n"
  57. echo $tmp
  58. ERROR="$ERROR $tmp"
  59. fi
  60. if [ -z "$ERROR" ]
  61. then
  62. mail "Everything went right"
  63. else
  64. mail "$ERROR"
  65. fi
  66. exit 0