Last active
August 29, 2015 14:02
-
-
Save mephir/a80d98b67e803371a3fd to your computer and use it in GitHub Desktop.
Database backup
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
usage="Usage `basename $0` [--help] [[-c -u -p -h -o] n] -- script are dumping mysql database via mysqldump | |
where: | |
-u database user name (default: "") | |
-p database user password (default: "") | |
-h database hostname (default: "localhost") | |
-o output directory (default: "/var/backup/$dbname/" | |
-c compress output (default: true) | |
n databasename | |
-help show this help text | |
" | |
dbuser="" | |
dbpass="" | |
dbhost="localhost" | |
dbname="$BASH_ARGV" | |
output="/var/backups/${dbname}/" | |
compress=true | |
_now=$(date +"%y%m%d%H%M%S") | |
_file="${_now}_${dbname}" | |
if [ $1 == "-help" ] || [ $# == 0 ] || [ $1 == "--help" ] | |
then | |
echo "$usage" | |
exit 0 | |
fi | |
while getopts :u:p:h:o:c: option | |
do | |
case "${option}" | |
in | |
u) dbuser=${OPTARG};; | |
p) dbpass=${OPTARG};; | |
h) dbhost=${OPTARG};; | |
o) output=${OPTARG};; | |
c) compress=true;; | |
esac | |
done | |
CMD="mysqldump -u${dbuser} -p${dbpass} ${dbname}" | |
target="${output}${_file}.sql" | |
echo "Starting database ${dbname} backup ..." | |
$CMD 1>${target} | |
rc=$? | |
if [[ $rc != 0 ]] | |
then | |
cat ${target} | |
rm -rf ${target} | |
exit $rc | |
fi | |
echo "Backup finished" | |
if [ "$compress" == true ] | |
then | |
echo "Compressing output" | |
CMD="tar -C ${output} -cvzf $output${_file}.tar.gz ${_file}.sql" | |
$CMD | |
echo "Remove sql file" | |
CMD="rm -rf ${target}" | |
$CMD | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment