linux shell脚本对mariadb的备份及还原

事前准备

  1. 安装maradb
    yum -y install mariadb mariadb-server
  2. 设置用户密码 修改root密码
    以root身份在终端登陆(必须)输入 mysqladmin -u root -p password ex
    后面的 ex 是要设置的密码
    回车后出现 Enter password
    输入就密码,如果没有,直接回车
  3. 设置远程权限方便查看mysql的还原
    GRANT ALL PRIVILEGES ON . TO ‘root’@’%'IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
  4. window安装 MySQL链接linux,mariadb

先上代码

#!/bin/bash

#保存备份个数
number=3
#备份保存路径
backup_dir=/root/mysqlbackup
#日期
dd=`date +%Y%m%d-%H%M`
#备份工具
tool=mysqldump
#判断文件是否存在如果不存在创建
[ -d $backup_dir ] || mkdir -p $backup_dir

while [ True ]
do
	read -p "请输入你的选择1.备份2.还原" select
	case "$select" in
	1)
		read -p "请输入要备份的账户" username
		read -p "请输入要备份账号的密码" password
		read -p "请输入要备份的数据库名字" database_name	
		#备份
		$tool -u $username -p$password $database_name > $backup_dir/$database_name-$dd.dump
		#写创建备份日志
		echo "create $backup_dir/$database_name-$dd.dupm" >> $backup_dir/log.txt
		#找出需要删除的备份
		delfile=`ls -l -ct $backup_dir | awk '{print $9 }' |tail -1`
		#判断现在的备份数量是否大于$number
		count=`ls -l -ct  $backup_dir/ | awk '{print $9 }' | wc -l`
		if [ $count -gt $number ]
		then
			#删除最早生成的备份,只保留number数量的备份
			rm -rf $delfile  
			#写删除文件日志
			echo "delete $delfile" >> $backup_dir/log.txt
		fi
		if [ $? -eq 0 ]
		then 
			echo "备份成功。"
		else
			echo "备份失败"
		fi
	;;
	2)
		read -p "请输入要还原的账户" username
                read -p "请输入要还原账号的密码" password
                read -p "请输入要还原的数据库名字" database_name
		#找最新备份进行还原
		reduction=`ls -l -ct $backup_dir | awk '{print $9 }' | head -3 | tail -1`
		#还原
		mysql -u$username -p$password $database_name < /root/mysqlbackup/$reduction
		#写日志
		echo "reduction $reduction" >> $backup_dir/log.txt
		if [ $? -eq 0 ]
                then
                        echo "还原成功。"
                else
                        echo "还原失败"
                fi
	;;
	esac
done

猜你喜欢

转载自blog.csdn.net/qq_36761759/article/details/83180427