Correct a couple typs and add sql backup
This commit is contained in:
parent
2d6735e0fb
commit
11c7f9b67b
10
b2backup.sh
10
b2backup.sh
@ -11,16 +11,6 @@ export B2_ACCOUNT_ID="$B2_ACCOUNT_ID"
|
||||
export B2_ACCOUNT_KEY="$B2_ACCOUNT_KEY"
|
||||
export RESTIC_REPOSITORY="$RESTIC_REPOSITORY"
|
||||
export RESTIC_PASSWORD_FILE="$RESTIC_PASSWORD_FILE"
|
||||
#dump dbs:
|
||||
#Uncomment double-commented lines to enable dumping of all MySQL databases, MySQL auth is up to you to configure.
|
||||
#remove old dumps
|
||||
##find /backup/sqldumps -type f -mtime +7 | xargs rm -f
|
||||
#backup dbs to one massive file
|
||||
##/usr/bin/mysqldump -u root --single-transaction --quick --lock-tables=false --all-databases > /backup/sqldumps/full-backup-$(date +"%Y-%m-%d_%H-%M-%S").sql
|
||||
#backup dbs to separate files
|
||||
##for DB in $(mysql -e 'show databases' -s --skip-column-names); do
|
||||
## mysqldump $DB > "/backup/sqldumps/$DB-$(date +"%Y-%m-%d_%H-%M-%S").sql";
|
||||
##done
|
||||
|
||||
/usr/bin/restic backup $BACKUPDATA
|
||||
/usr/bin/restic forget --keep-last $KEEPLAST --keep-daily $KEEPDAILY --keep-weekly $KEEPWEEKLY --keep-monthly $KEEPMONTHLY --keep-yearly $KEEPYEARLY
|
||||
|
@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
. /opt/b2backup/b2config.txt
|
||||
. ${PWD}/config.txt
|
||||
|
||||
export B2_ACCOUNT_ID="$B2_ACCOUNT_ID"
|
||||
export B2_ACCOUNT_KEY="$B2_ACCOUNT_KEY"
|
||||
|
@ -14,4 +14,10 @@ RESTORE_DIR="/path/to/mount/snapshot/repo"
|
||||
VM_EMAILSUB="VM Backups Complete on SERVERNAME"
|
||||
VM_XML_PATH="/path/to/backup/vm/xml"
|
||||
VM_SNAP_PATH="/path/to/backup/vm/snapshots
|
||||
VM_KEEP_BACKUP_DAYS="7"
|
||||
VM_KEEP_BACKUP_DAYS="7"
|
||||
SQL_EMAILSUB="Database Backup Complete"
|
||||
PGSQL_PATH=/path/to/sqlbackups/postgres
|
||||
MYSQL_PATH=/path/to/sqlbackups/mysql
|
||||
SQL_AUTH_FILE=/path/to/sqlauth.txt
|
||||
PGSQL_CONTAINER_NAMES="space separated list of containers running pgsql"
|
||||
MYSQL_CONTAINER_NAMES="space separated list of containers running mysql or mariadb"
|
1
sqlauth.txt
Normal file
1
sqlauth.txt
Normal file
@ -0,0 +1 @@
|
||||
container_name:db_username:db_password
|
51
sqlbackup.sh
Normal file
51
sqlbackup.sh
Normal file
@ -0,0 +1,51 @@
|
||||
#!/bin/bash
|
||||
MAILFILE="/tmp/sqlmailtxt"
|
||||
SERVER_NAME=$HOSTNAME
|
||||
SENDER=$(whoami)
|
||||
USER="noreply"
|
||||
MAILHEADER="/opt/b2backup/mailheader.txt"
|
||||
MAILFOOTER="/opt/b2backup/mailfooter.txt"
|
||||
. ${PWD}/config.txt
|
||||
|
||||
export PGSQL_CONTAINER_NAMES="$PGSQL_CONTAINER_NAMES"
|
||||
export MYSQL_CONTAINER_NAMES="$MYSQL_CONTAINER_NAMES"
|
||||
export PGSQL_PATH="$PGSQL_PATH"
|
||||
export MYSQL_PATH="$MYSQL_PATH"
|
||||
export SQL_AUTH_FILE="$SQL_AUTH_FILE"
|
||||
#backup SQL Containers
|
||||
##PGSQL
|
||||
for pgsqlcontainer in $PGSQL_CONTAINER_NAMES; do
|
||||
pgsqlusername=$(echo $pgsqlcontainer | awk -F"_" '{print $1}')
|
||||
docker exec -t $pgsqlcontainer pg_dumpall -c -U $pgsqlusername | gzip > "$PGSQL_PATH"/"$pgsqlcontainer"_dump_$(date +%d-%m-%Y_%H_%M_%S).gz
|
||||
done
|
||||
|
||||
##MySQL/Maria
|
||||
for mysqlcontainer in $MYSQL_CONTAINER_NAMES; do
|
||||
mysqlusername=$(grep $mysqlcontainer $SQL_AUTH_FILE | awk -F":" '{print $2}')
|
||||
mysqlpassword=$(grep $mysqlcontainer $SQL_AUTH_FILE | awk -F":" '{print $3}')
|
||||
mysqldbname=$(echo $mysqlcontainer $SQL_AUTH_FILE | awk -F"_" '{print $1}')
|
||||
docker exec -t $mysqlcontainer mysqldump -u$mysqlusername -p$mysqlpassword $mysqldbname | gzip > "$MYSQL_PATH"/"$mysqlcontainer"_dump_$(date +%d-%m-%Y_%H_%M_%S).gz
|
||||
done
|
||||
|
||||
|
||||
for pgsqldel in $(find $PGSQL_PATH -type f -mtime +7); do
|
||||
rm -f $pgsqldel
|
||||
done
|
||||
|
||||
for mysqldel in $(find $MYSQL_PATH -type f -mtime +7); do
|
||||
rm -f $mysqldel
|
||||
done
|
||||
|
||||
echo "DB Backup Complete. Currently available backups:" > $MAILFILE
|
||||
echo "<pre style='font:monospace'>" >> $MAILFILE
|
||||
echo "PostgreSQL:" >> $MAILFILE
|
||||
echo "$(ls -lh $PGSQL_PATH)" >> $MAILFILE
|
||||
echo "MySQL/MariaDB:" >> $MAILFILE
|
||||
echo "$(ls -lh $MYSQL_PATH)" >> $MAILFILE
|
||||
|
||||
(
|
||||
echo "Subject: $SQL_EMAILSUB"
|
||||
echo "From: $SENDER"
|
||||
echo "To: $RECIPIENT"
|
||||
cat $MAILHEADER $MAILFILE $MAILFOOTER
|
||||
) | sendmail -t
|
Loading…
Reference in New Issue
Block a user