Skip to content

Instantly share code, notes, and snippets.

@vojty
Created June 17, 2015 14:53
Show Gist options
  • Save vojty/ced0d29739cf0c09183d to your computer and use it in GitHub Desktop.
Save vojty/ced0d29739cf0c09183d to your computer and use it in GitHub Desktop.
MySQL backups
#!/bin/bash
now=$(date +"%Y-%m-%d")
mysqlUser="root"
mysqlPass="xxx"
server="user@server.com"
log="./backup_sql.log"
dbs=`mysql -u "$mysqlUser" -p"$mysqlPass" -e 'SHOW DATABASES;' | grep -Ev "(Database|mysql|information_schema|performance_schema|phpmyadmin)"`
tmpDir=`mktemp -d`
if [ $? != 0 ]; then
echo "Can't create tmp directory."
exit
fi
remoteDir="/remote/dir/db/"$(date +"%Y/%m")
ssh "$server" "mkdir -p $remoteDir"
echo "" > "$log"
while read -r db; do
file="$tmpDir/$now.$db".sql.gz
mysqldump --single-transaction -u "$mysqlUser" -p"$mysqlPass" "$db" | gzip > "$file"
scp "$file" "$server:$remoteDir/" >> "$log"
rm "$file"
done <<< "$dbs"
rmdir "$tmpDir"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment