linlf03

备份数据库: 将Mysql的数据库数据备份后,拷贝到其它机器上。

1、备份和拷贝数据库的shell

backup-mysql.sh

#!/bin/sh
#打印日志
function log(){
    curTime=$(date +"%Y-%m-%d %H:%M:%S.%N")
    echo $curTime $1   
}


PATH=/usr/local/bin:/bin:/usr/bin
#备份数据存放的文件夹
backupdir=\'/home/xx/data/backup_db\'
time=$(date +%Y%m%d_%H:%M:%S)
log \'备份数据库开始...\'
backfile="$backupdir/数据库名称_$time.sql.gz"
mysqldump --opt -u数据库用户 -p数据库密码 数据库名称 | gzip > "$backfile"
log \'备份数据库结束。\'
log \'拷贝文件开始...\'
sshpass -p 目标服务器用户密码 scp "$backfile" root@目标服务器IP:/home/yy/data/backup_db/
log \'拷贝文件结束.\'

这里使用sshpass带上目标服务器的密码

 

2、使用Cron定时任务执行shell

每天23小时59分执行备份脚本。时间可以根据自己需求设置。

59 23 * * *   /home/xx/data/backup_db/backup-mysql.sh >> /home/xx/data/backup_db/backup-mysql.txt

  

 

执行过程中遇到的问题:

1、mysqldump命令没找到

用ln命令链接到/usr/bin下面

ln -fs /usr/local/mysql/bin/mysqldump /usr/bin  

 

2、sshpass的安装

参考:sshpass的安装使用

我这里使用yum安装不上,

wget http://sourceforge.net/projects/sshpass/files/latest/download -O sshpass.tar.gz

tar -zxvf sshpass-1.06.tar.gz
cd sshpass-1.06
./configure
make
make install

 

分类:

技术点:

相关文章:

  • 2022-02-10
  • 2021-12-06
  • 2022-01-18
  • 2021-12-16
  • 2022-02-25
  • 2021-12-27
  • 2021-11-26
  • 2021-11-22
猜你喜欢
  • 2021-11-20
  • 2021-11-22
  • 2021-12-03
  • 2021-11-30
  • 2021-06-16
  • 2022-01-12
相关资源
相似解决方案