backup_nc6.sh 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #!/bin/bash
  2. # filepath: /home/yazoo/appdev/duptest/backup_nc_critical.sh
  3. # --- Common Variables ---
  4. NEXTCLOUD_CONTAINERS=("nc6" "nc6_govod" "nc6_cron" "nc6_clamav" "nc6_db" "nc6_onlyoffice" "nc6_redis")
  5. DUPLICATI_CONTAINER="nextcloud_duplicati"
  6. DUPLICATI_CLI="/app/duplicati/duplicati-cli"
  7. MAIL_URL="smtp://smtp.qq.com:587?starttls=always"
  8. MAIL_FROM="larry1chan@qq.com"
  9. MAIL_USER="larry1chan@qq.com"
  10. MAIL_PASS="bnnxkyaajruteega"
  11. MAIL_TO="larry1chan@gmail.com"
  12. COMMON_OPTS="--send-mail-url=\"$MAIL_URL\" --send-mail-from=\"$MAIL_FROM\" --send-mail-any-operation=false --send-mail-password=$MAIL_PASS --send-mail-username=\"$MAIL_USER\" --send-mail-to=\"$MAIL_TO\" --encryption-module= --compression-module=zip --dblock-size=50mb --no-encryption=true --disable-module=console-password-input"
  13. # --- Backup Job Definitions ---
  14. JOBS=(
  15. "Nextcloud db|/config/BAWCJCSDVZ.sqlite|DB-2|/mnt/db/|file:///backups/nc/db/"
  16. "Nextcloud es_index|/config/AXUHBDDMXV.sqlite|DB-3|/mnt/es_index/|file:///backups/nc/es_index/"
  17. "Nextcloud oo_data|/config/LPVNROTOBP.sqlite|DB-4|/mnt/oo_data/|file:///backups/nc/oo_data/"
  18. "Nextcloud clamav|/config/UUBOPCEJTB.sqlite|DB-5|/mnt/clamav/|file:///backups/nc/clamav/"
  19. "Nextcloud files|/config/KWDLIRMVDX.sqlite|DB-6|/mnt/files/|file:///backups/nc/files/"
  20. "Nextcloud files - Jennifer|/config/LADZOGOMGJ.sqlite|DB-7|/mnt/jennifer/|file:///backups/nc/jennifer/"
  21. "Nextcloud files - Larry|/config/VHNRBJWTOB.sqlite|DB-8|/mnt/larry/|file:///backups/nc/larry/"
  22. "Nextcloud files - michelle|/config/NBLWZGCUWA.sqlite|DB-9|/mnt/michelle/|file:///backups/nc/michelle/"
  23. "Nextcloud files - mindy|/config/CMLORKRFEV.sqlite|DB-1|/mnt/mindy/|file:///backups/nc/mindy/"
  24. )
  25. # JOBS=(
  26. # "Nextcloud db|/config/BAWCJCSDVZ.sqlite|DB-2|/mnt/db/|file:///backups/nc/db/"
  27. # )
  28. # --- Stop Nextcloud Containers ---
  29. echo "Stopping Nextcloud containers..."
  30. for c in "${NEXTCLOUD_CONTAINERS[@]}"; do
  31. if docker ps --filter "name=$c" --filter "status=running" | grep -q "$c"; then
  32. echo "Stopping $c"
  33. docker stop "$c"
  34. else
  35. echo "$c is not running or does not exist."
  36. fi
  37. done
  38. # --- Backup Loop ---
  39. for job in "${JOBS[@]}"; do
  40. IFS="|" read -r BACKUP_NAME DBPATH BACKUP_ID SRC DST <<< "$job"
  41. echo "Starting backup: $BACKUP_NAME"
  42. docker exec -i "$DUPLICATI_CONTAINER" $DUPLICATI_CLI backup "$DST" "$SRC" \
  43. $COMMON_OPTS \
  44. --backup-name="$BACKUP_NAME" \
  45. --dbpath="$DBPATH" \
  46. --backup-id="$BACKUP_ID"
  47. echo "Finished backup: $BACKUP_NAME"
  48. done
  49. # --- Start Nextcloud Containers ---
  50. echo "Starting Nextcloud containers..."
  51. for c in "${NEXTCLOUD_CONTAINERS[@]}"; do
  52. if docker ps -a --filter "name=$c" | grep -q "$c"; then
  53. echo "Starting $c"
  54. docker start "$c"
  55. else
  56. echo "$c does not exist."
  57. fi
  58. done