linux下msyql自动备份

环境变量配置

vim /etc/profile

追加/usr/local/mysql,MySQL数据库默认安装路径

source /etc/profile

创建定时备份脚本

mkdir /home/mysqlDump/

 vim /home/mysqlDump/mysql_backup.sh

编辑状态下快捷键:ggdG ,可以清空文件内容

#!/bin/bash
#================基础参数===============
user="root"
password="123456"
host=localhost
port="3306"
#备份库名列表,括号内多个数据库空格隔开
db_name_array=("sys" "wzy")
#备份位置(若不存在,会自动创建)
datafile_path="/home/mysqlDump"
#mysqlDump的绝对位置,基本为mysql安装路径
mysqlDump_path="/usr/bin/mysqldump"
#是否删除.sql文件(包含子目录): ON开启,其他字符不开启
rf_switch="ON"
#数据保留天数(按文件修改时间计算)
expire_day=10
 
#================非开发人员勿改================
#备份最终路径
bak_path="${datafile_path}/${db_name}"
#错误日志文件名称
error_log="${bak_path}/${db_name}_error.log"
#================备份执行指令================
#判断文件夹,不存在则创建
if [ ! -d "$bak_path" ]
then
 mkdir -p  ${bak_path}
 echo "已创建文件夹${bak_path}"
fi
 
#判断mysql是否开启
checkPort=`lsof -i:${port} | wc -l`
if [ "$checkPort" -gt "0" ]
then
 echo "mysql 已启动"
else
 echo "mysql 未启动无法进行备份"
 echo "mysql 未启动无法进行备份" > $error_log
fi
   
#执行备份
echo "执行备份"
for db_name in ${db_name_array[*]}
do
 ${mysqlDump_path} -u${user} -p${password} --host=${host} -q -R --databases $db_name | gzip > ${bak_path}"/"$db_name$'_'$(date +%Y%m%d_%H%M%S).sql.gz 2>>${error_log}
done
 
#删除过期文件
echo "删除过期文件"
if [ $rf_switch == "ON" ]
then
 find ${bak_path} -name "*.sql" -mtime +${expire_day} | xargs rm -f
fi
echo "脚本执行完毕"

设置脚本执行权限

chmod +x ./mysql_backup.sh

执行

sh mysql_backup.sh

定时任务设置

编辑

crontab -e

30 22 * * * /home/mysqlDump/mysql.sh #每天22:30执行一次

查看

crontab -l

启动

/bin/systemctl start crond.service

停止

/bin/systemctl stop crond.service

备份服务器文件到本地

scp user@ip:/home/mysqlDump/xx.sql.gz F:\xx\xx

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值