jenkins配置自动备份mysql数据 - yiyixiaozhi/readingNotes GitHub Wiki

  1. 首先,jenkins安装SSH plugin This plugin executes shell commands remotely using SSH protocol.

  2. 在Jenkins凭据中配置上要连接的主机以及对应的用户名和密码。

  3. 新建任务。我们此处的应用场景是:阿里云主机将数据库进行备份,然后本机局域网下载并回复到本地的数据库中。

# 配置构建环境使用此脚本:
## 阿里云进行数据库备份
### SSH site
[email protected]:22
### Pre build script
/home/yyxz/yyxz/DBBackup/backup.sh
## 本机152主机下载备份文件,并恢复到本地mysql数据库中
### SSH site
[email protected]:22
### Pre build script
/home/yyxz/yyxz/DBBackup/scp_rename_db.sh

# 阿里云使用的脚本
[yyxz@yyxz DBBackup]$ pwd
/home/yyxz/yyxz/DBBackup
[yyxz@yyxz DBBackup]$ cat backup.sh 
#!/bin/bash
cd /home/yyxz/yyxz/DBBackup
rm yyxz_prod.sql
mysqldump -h localhost -u root -pyyxz@2019  yyxz_prod > yyxz_prod.sql

# 本地152主机使用的脚本
[yyxz@localhost DBBackup]$ pwd
/home/yyxz/yyxz/DBBackup
[yyxz@localhost DBBackup]$ cat scp_rename_db.sh 
#!/bin/bash
cd /home/yyxz/yyxz/DBBackup
./scpFromAlYun.sh
timestring=`date "+%Y%m%d%H%M%S"`
mv yyxz_prod.sql yyxz_prod-$timestring.sql
mysql -h localhost -u root -pyyxz@2019 yyxz_prod_mirror < yyxz_prod-$timestring.sql
[yyxz@localhost DBBackup]$ cat scpFromAlYun.sh 
#!/usr/bin/expect
set timeout 3
spawn scp -P 22 [email protected]:/home/yyxz/yyxz/DBBackup/yyxz_prod.sql /home/yyxz/yyxz/DBBackup/yyxz_prod.sql
expect "password:"
send "yyxz@2019\n"
interact

如果expect命令没有,可以安装:yum install -y expect

⚠️ **GitHub.com Fallback** ⚠️