ubuntu mysql怎么备份_Ubuntu下MySQL备份与异地备份

下面是一则MySQL备份实例,在Ubuntu下测试通过。完成任务是本地备份。可用于服务器端。

#! /bin/bash

echo "backupmysql V1.0"

###date stamp###

datestamp=$(date +%Y-%m-%d)

###path ###

startdir=/home/user/mysqlbackup

###bakfile prefix###

fileprefix=sql

echo "sqldump is starting.."

###bakup command####

mysqldump -uuser -ppassword -l databasename > $startdir/$fileprefix$datestamp.sql

echo "########################################################################"

echo "sqldump is done"

###tar file ###

cd $startdir

echo "the current directory is :"

pwd

tar zcvf $startdir/$fileprefix$datestamp.tgz $fileprefix$datestamp.sql

###del the sql file###

rm -rf $startdir/$fileprefix$datestamp.sql

echo "#######################################################################"

echo "......  Done"如果远程将备份取到异地,如下我写的一个客户端用例(测试环境RedHat-as-5)。用sftp协议。引用:

#! /bin/bash

cd /home/user/mysqlbackup

lcd /home/mysqlbackup/

-get fileprefix$(date +%Y-%m-%d).tgz

quit

EOF注fileprefix$(date +%Y-%m-%d).tgz 与服务器端备份的相对应,

路径为、home/user/mysqlbackup

get命令前加一个"-"以防止其执行错误时sftp执行过程被终止.

注:假设数据库服务器名字为database,备份数据的服务器的名字backup,我们需要在backup服务器端运行脚本来取得database服务器端的备份文件。

两台服务器采用sftp传输文件

但是现实shell中sftp登录需要交互式的密码,

为了在远端服务器采用非交互的sftp,我们可以选择用密钥的方法进行验证登录权限。从而代替密码验证方式。

首先需要我们在backup生成密钥,并将其公钥上传到database服务器。

因为shell脚本中使用sftp时必须用到密钥对(公钥和私钥),

可以使用如下命令

$ssh-keygen -d

然后分发公钥

为了使用密钥,必须将公钥分发到欲登录的远程backup服务器上,

1.copy公钥到欲登录的远程服务器的远程用户的家目录下,例如:

cp id_dsa.pub到database:/home/user/.ssh/

若目录/home/user/.ssh/不存在,需要我们手工建立。

公钥文件更名为authorized_keys

修改公钥文件的访问权限

chmod 644 authorized_keys0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值