Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
- db_host="localhost"
- db_user="backup"
- db_pass="XXXXXXXXXXXXXX"
- dbs=( drupal_voxmed onlinesurveys translations projects panel common )
- panel_empty_tables=( contacts contacts_addresses contacts_emails contacts_numbers contacts_others contacts_updates excluded_single_emails panel_audit access_contacts_bridge )
- now=$(date +%Y-%m-%d_%H:%M)
- backup_dir="/var/backups/env_sync"
- #check and compress the dump
- function process_db_dump () {
- if [ -f $1 ]
- then
- echo "Done - $(date)"
- echo -n "Compressing $db dump - $(date) ... "
- gzip -f $1
- if [ -f $1.gz ]
- then
- echo "Done - $(date)... "
- else
- echo "ERROR $db not compressed - $(date)"
- fi
- else
- echo "ERROR $db not backed up - $(date)"
- fi
- }
- #prep our location
- mkdir -p $backup_dir && chown mysql $backup_dir && find $backup_dir -type f -name *.sql.gz | xargs rm -fv
- for db in ${dbs[@]}
- do
- now=$(date +%Y-%m-%d_%H:%M)
- db_file="$db-$now.sql"
- if [[ "$db" =~ (panel) ]]
- then
- echo -n "Dumping $db - $(date) ... "
- mysqldump -q -h $db_host -u $db_user -p$db_pass $(for table in ${panel_empty_tables[@]}; do echo -n "--ignore-table=$db.$table "; done) $db > $backup_dir/$db_file
- mysqldump -q -h $db_host -u $db_user -p$db_pass --no-data $db $(for table in ${panel_empty_tables[@]}; do echo -n "$table "; done) >> $backup_dir/$db_file
- process_db_dump "$backup_dir/$db_file"
- else
- echo -n "Dumping $db - $(date)... "
- mysqldump -q -h $db_host -u $db_user -p$db_pass $db > $backup_dir/$db_file
- process_db_dump "$backup_dir/$db_file"
- fi
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement