Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #Postgres docoker container db for nextcloud
- pges_ct_id='postgresdb'
- # Check if running as root
- if [ "$(id -u)" != "0" ]; then
- echo "This script must be run as root" 1>&2
- exit 1
- fi
- # Display current time
- date +'%a %b %e %H:%M:%S %Z %Y'
- # Put Nextcloud instance in maintenance mode
- docker exec -u www-data nextcloud php occ maintenance:mode --on
- # Display current time
- date +'%a %b %e %H:%M:%S %Z %Y'
- # Create directory for backup and delete old backups
- docker exec $pges_ct_id mkdir -p /var/lib/postgresql/data/backup/
- docker exec $pges_ct_id rm -f /var/lib/postgresql/data/backup/nextcloud.sql
- # Create new backup using pg_dump and save to file
- docker exec $pges_ct_id sh -c 'pg_dump -U nextcloud -h localhost nextcloud >> /var/lib/postgresql/data/backup/nextcloud.sql'
- # Delete old compressed backup file
- rm -f /root/docker/nextcloud/db_data/backup/nextcloud.tar.gz
- # Check size of backup file
- if [ $(wc -c < /root/docker/nextcloud/db_data/backup/nextcloud.sql) -ge 100000 ]; then
- # File is larger than 100KB
- # Create tar archive and compress with gzip
- tar -cvf /root/docker/nextcloud/db_data/backup/nextcloud.tar /root/docker/nextcloud/db_data/backup/nextcloud.sql ; gzip -9 /root/docker/nextcloud/db_data/backup/nextcloud.tar
- else
- # File is smaller than 100KB
- # Send email notification
- echo "Backup nextcloud"| sendmail -f [email protected] -v [email protected] -m "The Nextcloud database backup is less than 100KB. It is likely that it has failed."
- fi
- # Delete original backup file
- rm /root/docker/nextcloud/db_data/backup/nextcloud.sql
- # Display current time
- date +'%a %b %e %H:%M:%S %Z %Y'
- echo 'Maintenance mode is still active. It must be deactivated in the next backup!'
- echo 'DONE'
- # Display current time
- date +'%a %b %e %H:%M:%S %Z %Y'
Advertisement
Add Comment
Please, Sign In to add comment