linux环境下定时备份mysql数据库并上传到另一台linux服务器和windows主机

  • Post author:
  • Post category:linux




linux环境下定时备份数据库并上传到另一台linux服务器和windows主机



1、配置服务器SSH

(1)数据库服务器,执行命令后敲回车

[root@localhost /]# ssh-keygen -t rsa

(2)数据库服务器安装openssh

[root@localhost /]# yum install -y sshpass

(3)存储备份的服务器,执行命令后敲回车

[root@localhost /]# ssh-keygen -t rsa

(4)存储备份的服务器安装openssh

[root@localhost /]# yum install -y sshpass

(5)存储备份的windows安装openssh

设置——应用——可选功能——添加——搜openssh——安装openssh客户端



2、编写数据库备份脚本

在数据库服务器创建一个备份脚本文件,例如 backup_mysql.sh,并将以下代码复制到文件中,数据库信息和文件保存路径由自己设置:

#!/bin/bash

# 设置 MySQL 登录信息
MYSQL_USER="your_mysql_username"
MYSQL_PASSWORD="your_mysql_password"
MYSQL_DATABASE="your_database_name"
BACKUP_DIR="/path/to/backup/directory"
DATE=$(date +%Y-%m-%d)
TIME=$(date +%H-%M-%S)

# 创建备份目录和文件名
mkdir -p $BACKUP_DIR/$DATE
FILENAME=$BACKUP_DIR/$DATE/$MYSQL_DATABASE-$TIME.sql.gz

# 使用 mysqldump 命令备份数据库
mysqldump --user=$MYSQL_USER --password=$MYSQL_PASSWORD --databases $MYSQL_DATABASE | gzip > $FILENAME

# 输出备份完成信息到txt文件中
echo "备份成功 on $(date +%Y-%m-%d %H:%M:%S) for database $MYSQL_DATABASE to $FILENAME." >> $BACKUP_DIR/BackupLog.txt

echo "===开始传输 $BACKUP_DIR/$DATE/$MYSQL_DATABASE-$TIME.sql.gz ===" >> $BACKUP_DIR/BackupLog.txt

# -p 密码  root@YourIPAddr为主机名和ip  :/opt是传输到目标的路径
sshpass -p 123456 scp -v -o StrictHostKeyChecking=no $BACKUP_DIR/$DATE/$MYSQL_DATABASE-$TIME.sql.gz root@YourIPAddr:/opt

sshpass -p 12345 scp -v -o StrictHostKeyChecking=no $BACKUP_DIR/$DATE/$MYSQL_DATABASE-$TIME.sql.gz ggc@YourIPAddr:/d:/data/

echo "===传输完成===" >> $BACKUP_DIR/BackupLog.txt

# 删除超过14天的备份文件
find $BACKUP_DIR/* -mtime +14 -exec rm {} \;



3、为脚本添加可执行权限,设置定时执行

Chmod +x backup_mysql.sh

将脚本文件添加到crontab中,定时执行备份任务,时间表达式为分钟(0~59) 小时(0~23) 日(1~31) 月(1~12) 周(0~6)

Crontab -e
0 2 * * * /path/to/backup_mysql.sh >/dev/null 2>&1

保存并退出编辑器。现在,脚本将在规定时间点执行,并输出备份计划信息到txt。

上面的shell脚本做了以下事情:

1.获取当前日期和时间。

2.使用 mkdir 命令创建备份目录和文件名。

3.使用 mysqldump 命令备份数据库,并将结果压缩成 gzip 格式。

4.输出备份完成信息。

5.传输备份到服务器

6.使用 find 命令查找超过14天的备份文件,并将其删除。



版权声明:本文为mu_ye_my原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。