backup_vaultwarden.sh 897 B

1234567891011121314151617181920212223242526272829303132
  1. #!/bin/bash
  2. if [ "$#" -ne 1 ]; then
  3. echo "Error: Please provide the path to the config file." >&2
  4. echo "Usage: $0 <config file path>" >&2
  5. exit 1
  6. fi
  7. #Source external configuration
  8. . $1
  9. #Check if all variables are provided
  10. for var in backupFilepath dockerContainerName dataFilepath; do
  11. if [ -z "${!var}" ]; then
  12. echo "Error: Required config variable '$var' is not set or empty." >&2
  13. exit 1
  14. fi
  15. done
  16. #Create backup directories if not present
  17. mkdir -p ${backupFilepath}/database
  18. #mkdir -p ${backupFilepath}/attachments
  19. #Backup database
  20. docker exec -i ${dockerContainerName} /vaultwarden backup > /dev/null 2>&1
  21. #Copy file(s) over to destination
  22. mv ${dataFilepath}/db_*.sqlite3 ${backupFilepath}/database/
  23. #Backup rotation - Delete everything older than rotationDays
  24. find $backupFilepath -type f -mtime +$rotationDays -name '*.sqlite3' -execdir rm -- '{}' \;