Skip to content

Instantly share code, notes, and snippets.

@theand
Last active December 17, 2015 11:55
Show Gist options
  • Save theand/4563382 to your computer and use it in GitHub Desktop.
Save theand/4563382 to your computer and use it in GitHub Desktop.
#BASH full backup for mysql raw db
#!/bin/sh
prefix="mysql_raw"
mysql_root="/var/lib/mysql"
backup_root="/backup/mysql_raw_backup"
dir_name="$(date +%y%m%d)"
service mysqld stop
service httpd stop
if [ ! -d $mysql_root ] ; then
echo "please type the mysql path"
fi
if [ ! -d $backup_root ] ; then
echo "create mysql backup folder.."
echo "mkdir -p $backup_root "
mkdir -p $backup_root
fi
if [ -d "$backup_root/$prefix.$dir_name" ]; then
echo "directory is existing"
rm -rf "$backup_root/$prefix.$dir_name"
exit
else
echo "make directory.. "
mkdir "$backup_root/$prefix.$dir_name"
fi
for mysql_name in $(ls $mysql_root)
do
if [ -d "$mysql_root/$mysql_name" ] ; then
echo "$mysql_name mysql backuping..."
tar zcfp $backup_root/$prefix.$dir_name/$mysql_name.raw.tar.gz $mysql_root/$mysql_name
fi
done
tar zcfp $backup_root/$prefix.$dir_name/mysql_root_raw.tar.gz $mysql_root/mysql-bin* $mysql_root/ib_logfile* $mysql_root/ibdata* $mysql_root/*.log
let "i = 0"
for dname in $(ls -t $backup_root)
do
let " i = i + 1"
if [ $i -ge "90" ]; then
if [ -d "$backup_root/$dname" ]; then
echo "Deleteing old archive"
rm -rf $backup_root/$dname
fi
fi
done
rm -f $backup_root/latest_mysql_raw_backup
ln -s $backup_root/$prefix.$dir_name $backup_root/latest_mysql_raw_backup
service mysqld start
service httpd start
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment