| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #!/bin/bash
- # filepath: /home/yazoo/appdev/duptest/backup_nc_critical.sh
- # --- Common Variables ---
- NEXTCLOUD_CONTAINERS=("nc6" "nc6_govod" "nc6_cron" "nc6_clamav" "nc6_db" "nc6_onlyoffice" "nc6_redis")
- DUPLICATI_CONTAINER="nextcloud_duplicati"
- DUPLICATI_CLI="/app/duplicati/duplicati-cli"
- MAIL_URL="smtp://smtp.qq.com:587?starttls=always"
- MAIL_FROM="larry1chan@qq.com"
- MAIL_USER="larry1chan@qq.com"
- MAIL_PASS="bnnxkyaajruteega"
- MAIL_TO="larry1chan@gmail.com"
- 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"
- # --- Backup Job Definitions ---
- JOBS=(
- "Nextcloud db|/config/BAWCJCSDVZ.sqlite|DB-2|/mnt/db/|file:///backups/nc/db/"
- "Nextcloud es_index|/config/AXUHBDDMXV.sqlite|DB-3|/mnt/es_index/|file:///backups/nc/es_index/"
- "Nextcloud oo_data|/config/LPVNROTOBP.sqlite|DB-4|/mnt/oo_data/|file:///backups/nc/oo_data/"
- "Nextcloud clamav|/config/UUBOPCEJTB.sqlite|DB-5|/mnt/clamav/|file:///backups/nc/clamav/"
- "Nextcloud files|/config/KWDLIRMVDX.sqlite|DB-6|/mnt/files/|file:///backups/nc/files/"
- "Nextcloud files - Jennifer|/config/LADZOGOMGJ.sqlite|DB-7|/mnt/jennifer/|file:///backups/nc/jennifer/"
- "Nextcloud files - Larry|/config/VHNRBJWTOB.sqlite|DB-8|/mnt/larry/|file:///backups/nc/larry/"
- "Nextcloud files - michelle|/config/NBLWZGCUWA.sqlite|DB-9|/mnt/michelle/|file:///backups/nc/michelle/"
- "Nextcloud files - mindy|/config/CMLORKRFEV.sqlite|DB-1|/mnt/mindy/|file:///backups/nc/mindy/"
- )
- # JOBS=(
- # "Nextcloud db|/config/BAWCJCSDVZ.sqlite|DB-2|/mnt/db/|file:///backups/nc/db/"
- # )
- # --- Stop Nextcloud Containers ---
- echo "Stopping Nextcloud containers..."
- for c in "${NEXTCLOUD_CONTAINERS[@]}"; do
- if docker ps --filter "name=$c" --filter "status=running" | grep -q "$c"; then
- echo "Stopping $c"
- docker stop "$c"
- else
- echo "$c is not running or does not exist."
- fi
- done
- # --- Backup Loop ---
- for job in "${JOBS[@]}"; do
- IFS="|" read -r BACKUP_NAME DBPATH BACKUP_ID SRC DST <<< "$job"
- echo "Starting backup: $BACKUP_NAME"
- docker exec -i "$DUPLICATI_CONTAINER" $DUPLICATI_CLI backup "$DST" "$SRC" \
- $COMMON_OPTS \
- --backup-name="$BACKUP_NAME" \
- --dbpath="$DBPATH" \
- --backup-id="$BACKUP_ID"
- echo "Finished backup: $BACKUP_NAME"
- done
- # --- Start Nextcloud Containers ---
- echo "Starting Nextcloud containers..."
- for c in "${NEXTCLOUD_CONTAINERS[@]}"; do
- if docker ps -a --filter "name=$c" | grep -q "$c"; then
- echo "Starting $c"
- docker start "$c"
- else
- echo "$c does not exist."
- fi
- done
|