mysql备份计划 linux_linux mysql数据库定时备份

大概思路:

1、新建备份文件夹,比如:mkdir /home/dbBackup

2、新建shell脚本文件,如:touch databaseName.sh

3、给文件可执行权限:chmod u+x bkDatabaseName.sh

4、编写shell脚本命令,如下(已验证通过):

#!/bin/bash

#保存备份个数

number=3

#备份保存路径

backup_dir=/home/db_backup/bocms

#日期

dd=`date +%Y%m%d`

#备份工具

tool=/usr/bin/mysqldump

#用户名

username=root

#密码

password=123456

#将要备份的数据库

database_name=test

#备份数据库

$tool -u $username -p$password $database_name | gzip > $backup_dir/$database_name-$dd.sql.gz

#拷贝到10服务器

scp $backup_dir/$database_name-$dd.sql.gz root@192.168.2.10:/home/dbbackup/cms

#写创建备份日志

echo "create $backup_dir/$database_name-$dd.sql.gz" >> $backup_dir/log.txt

#找出需要删除的备份

#delfile=`ls -l -crt $backup_dir/$database_name-*.sql.gz | awk '{print $9 }' | head -1`

#判断现在的备份数量是否大于$number

count=`ls -l -crt $backup_dir/$database_name-*.sql.gz | awk '{print $9 }' | wc -l`

if [ $count -gt $number ]

then

rm $delfile #删除最早生成的备份,只保留number数量的备份

#写删除文件日志

echo "delete $delfile" >> $backup_dir/log.txt

fi

5、添加计划任务(用linux自带crontab):

(1)确认crontab是否安装:

执行 crontab 命令如果报 command not found,就表明没有安装

# crontab

-bash: crontab: command not found

(2) 添加计划任务

执行命令:

crontab -e

这时就像使用vi编辑器一样,可以对计划任务进行编辑。

输入以下内容并保存:

0 */3 * * * /home/backup/bkDatabaseName.sh

具体是什么意思呢?

意思是每一分钟执行一次shell脚本“/home/backup/bkDatabaseName.sh”。

其中 ,crontab表达式:

m h dom mon dow command

m:分钟,0-59

h:小时,0-23

dom:日期,1-31

mon:月份,1-12

dow:星期,0-6,0为星期天

command:命令

6、查看任务是否执行:

systemctl status cron 或者查看shell 脚本定义的log.text文件

备注:

由于scp命令远程备份需要用到免密方式,用以下方式达成:

1、远程备份免密登录方式:

在A上运行命令:

# ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码)

# ssh root@192.168.60.110 "mkdir .ssh; chmod 0700 .ssh" (需要输入密码)

# scp ~/.ssh/id_rsa.pub root@192.168.60.110:.ssh/id_rsa.pub (需要输入密码)

在B上的命令:

# touch /root/.ssh/authorized_keys2 (如果已经存在这个文件, 跳过这条)

# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys2 (将id_rsa.pub的内容追加到 authorized_keys2 中)

回到A机器:

# ssh root@192.168.60.110 (不需要密码, 登录成功)

如果能保护好自己的私钥, 这种方法相对在shell上输入密码, 要安全一些

到此数据库备份已完成,有问题请留言,一起学习讨论,谢谢!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值