backup-to-b2.sh.j2 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #!/bin/bash
  2. # {{ ansible_managed }}
  3. EMAIL_ADDRESS="root@localhost"
  4. LOG_FILE="/var/log/rclone/rclone-$(date +%Y-%m-%d).log"
  5. {% if backups is defined and 'containers' in backups %}
  6. {% if containers is defined %}
  7. {% for container in containers %}
  8. {% if container.volumes is defined %}
  9. {% for volume in container.volumes %}
  10. echo "Starting backup of container '{{ container.service_name }}' volume '{{ volume | regex_replace(':.*') }}'." | ts >> "$LOG_FILE"
  11. /usr/bin/rclone copy {{ volume | regex_replace(':.*') }}/ b2-container-data:current/{{ ansible_hostname }}/{{ container.service_name }}/{{ volume | regex_replace(':.*') | basename }} \
  12. --backup-dir=b2-container-data:old/{{ ansible_hostname }}/{{ container.service_name }}/{{ volume | regex_replace(':.*') | basename }} \
  13. --suffix=-$(date +%Y-%m-%d) \
  14. --fast-list \
  15. --suffix-keep-extension \
  16. --exclude "*log" \
  17. --log-file="$LOG_FILE" -v
  18. echo "Finished backup of container '{{ container.service_name }}' volume '{{ volume | regex_replace(':.*') }}'." | ts >> "$LOG_FILE"
  19. {% endfor %}
  20. {% endif %}
  21. {% endfor %}
  22. {% endif %}
  23. {% endif %}
  24. {% if ansible_hostname == 'tvheadend' %}
  25. ## Photos
  26. PHOTOS_LOG="/tmp/b2-photos.log"
  27. > $PHOTOS_LOG
  28. echo "Starting backup of photos..." | ts >> "$LOG_FILE"
  29. #/usr/bin/rclone copy /mnt/nas/private/Photos b2-photos:current --backup-dir=b2-photos:old --suffix=-$(date +%Y-%m-%d) --fast-list --suffix-keep-extension --exclude "*DS_Store" --log-file=$PHOTOS_LOG | ts | tee -a "$LOG_FILE"
  30. /usr/bin/rclone copy /mnt/nas/private/Photos b2-photos:current --fast-list --immutable --exclude "*DS_Store" --log-file=$PHOTOS_LOG -v | ts | tee -a "$LOG_FILE"
  31. if [[ $? > 0 ]]; then
  32. mail -s "[$(hostname)] rclone - Photos Backup Error" "$EMAIL_ADDRESS" < $PHOTOS_LOG
  33. fi
  34. mv "$PHOTOS_LOG" "$LOG_DIR"
  35. echo "Finished backing up photos" | ts >> "$LOG_FILE"
  36. # Data
  37. DATA_LOG="/tmp/b2-data.log"
  38. > $DATA_LOG
  39. echo "Starting backup of data..." | ts >> "$LOG_FILE"
  40. /usr/bin/rclone copy /mnt/nas/private/Data b2-data:current --backup-dir=b2-data:old --suffix=-$(date +%Y-%m-%d) --fast-list --suffix-keep-extension --exclude "*DS_Store" --log-file=$DATA_LOG -v | ts | tee -a "$LOG_FILE"
  41. if [[ $? > 0 ]]; then
  42. mail -s "[$(hostname)] rclone - Data Backup Error" "$EMAIL_ADDRESS" < $PHOTOS_LOG
  43. fi
  44. mv "$DATA_LOG" "$LOG_DIR"
  45. echo "Finished backing up data" | ts >> "$LOG_FILE"
  46. # Music
  47. MUSIC_LOG="/tmp/b2-music.log"
  48. > $MUSIC_LOG
  49. echo "Starting backup of music..." | ts >> "$LOG_FILE"
  50. /usr/bin/rclone copy /mnt/nas/public b2-music:current --backup-dir=b2-music:old --suffix=-$(date +%Y-%m-%d) --fast-list --suffix-keep-extension --include=Music/** --include="Music Videos"/** --log-file=$MUSIC_LOG -v | ts | tee -a "$LOG_FILE"
  51. if [[ $? > 0 ]]; then
  52. mail -s "[$(hostname)] rclone - Music Backup Error" "$EMAIL_ADDRESS" < $MUSIC_LOG
  53. fi
  54. mv "$MUSIC_LOG" "$LOG_DIR"
  55. echo "Finished backing up music" | ts >> "$LOG_FILE"
  56. # Recipes
  57. RECIPES_LOG="/tmp/b2-recipes.log"
  58. > $RECIPES_LOG
  59. echo "Starting backup of recipes..." | ts >> "$LOG_FILE"
  60. /usr/bin/rclone copy /mnt/nas/public b2-data:current --backup-dir=b2-data:old --suffix=-$(date +%Y-%m-%d) --fast-list --suffix-keep-extension --include=Recipes/** --log-file=$RECIPES_LOG -v | ts | tee -a "$LOG_FILE"
  61. if [[ $? > 0 ]]; then
  62. mail -s "[$(hostname)] rclone - Recipes Backup Error" "$EMAIL_ADDRESS" < $RECIPES_LOG
  63. fi
  64. mv "$RECIPES_LOG" "$LOG_DIR"
  65. echo "Finished backing up recipes" | ts >> "$LOG_FILE"
  66. {% endif %}