编辑
2023-10-26
Linux
00
请注意,本文编写于 467 天前,最后修改于 323 天前,其中某些信息可能已经过时。

目录

set -e 表示一旦执行命令出现错误,就立即退出脚本
如果本地备份路径不存在,则创建该路径
定义备份函数
使用mysqldump命令备份MySQL数据库,并将备份文件保存到本地备份路径下
远程拷贝到
使用rsync命令将备份文件同步到远程备份路径下
执行备份函数,并将输出结果分别保存到日志文件和错误文件中
输出备份成功信息
关闭错误退出模式
bash
#!/bin/bash set -e name="数据库备份_$(date +%Y-%m-%d_%H-%M-%S).sql" bendi=/var/backups/mysql yuancheng=192.168.236.30::backup user=root password='MySQL@329958' sql_host=localhost if [ ! -d "$bendi" ]; then mkdir -p "$bendi" echo "备份文件夹 $bendi 不存在,已创建该文件夹。" fi bak(){ echo "MySQL bakcup begin at `date`" echo "执行MySQLdump,备份文件路径为/var/backups/mysql/$name" mysqldump -hlocalhost -uroot -pMySQL@329958 a >/var/backups/mysql/$name echo "远程拷贝到192.168.236.30::backup$name" rsync -az $bendi$name.$d1 $yuancheng/$name echo "MySQL backup end at `date`" } bak >>${bendi}/mysqldump日志.log 2>>${bendi}/rsync日志.err echo $("备份成功") set +e

set -e 表示一旦执行命令出现错误,就立即退出脚本

bash
name="数据库备份_$(date +%Y-%m-%d_%H-%M-%S).sql" # 定义备份文件名,包含当前时间 bendi=/var/backups/mysql # 定义本地备份路径 yuancheng=192.168.236.30::backup # 定义远程备份路径 user=root # 定义MySQL用户名 password='MySQL@329958' # 定义MySQL密码 sql_host=localhost # 定义MySQL主机地址

如果本地备份路径不存在,则创建该路径

bash
if [!-d "$bendi"]; then mkdir -p "$bendi" echo "备份文件夹 $bendi 不存在,已创建该文件夹。" fi echo "备份文件夹 $bendi 不存在,已创建该文件夹。" fi

定义备份函数

bash
bak(){ echo "MySQL bakcup begin at date" # 输出备份开始时间 echo "执行MySQLdump,备份文件路径为/var/backups/mysql/$name"

使用mysqldump命令备份MySQL数据库,并将备份文件保存到本地备份路径下

bash
mysqldump -hlocalhost -uroot -pMySQL@329958 a >/var/backups/mysql/name echo "

远程拷贝到

bash
192.168.236.30::backupname

使用rsync命令将备份文件同步到远程备份路径下

bash
rsync -az $bendi$name.$d1 $yuancheng/$name echo "MySQL backup end at date" # 输出备份结束时间 }

执行备份函数,并将输出结果分别保存到日志文件和错误文件中

bash
bak >>{bendi}/mysqldump日志.log 2>>{bendi}/rsync日志.err

输出备份成功信息

bash
echo $("备份成功")

关闭错误退出模式

bash
set +e
  1. set -e 表示一旦执行命令出现错误,就立即退出脚本,这是一种错误退 出模式。
  2. name="数据库备份_$(date +%Y-%m-%d_%H-%M-%S).sql" 定义备份文件 名,包含当前时间,以便于区分备份文件。
  3. bendi=/var/backups/mysql 定义本地备份路径,即备份文件保存的路 径。
  4. yuancheng=192.168.236.30::backup 定义远程备份路径,即备份文件同 步到远程服务器的路径。
  5. user=root 定义MySQL用户名。
  6. password='MySQL@329958' 定义MySQL密码。
  7. sql_host=localhost 定义MySQL主机地址。
  8. [ ! -d "$bendi" ] 判断本地备份路径是否存在,如果不存在则创建该路 径。
  9. bak() 是一个备份函数,主要功能是使用 mysqldump 命令备份MySQL 数据库,并使用 rsync 命令将备份文件同步到远程服务器上。
  10. bak >>${bendi}/mysqldump日志.log 2>>${bendi}/rsync日志.err 执行备 份函数,并将输出结果分别保存到日志文件和错误文件中。
  11. echo "备份成功" 输出备份成功信息。
  12. set +e 关闭错误退出模式,这是为了避免在脚本执行过程中出现错误而 导致整个脚本退出。

本文作者:Casear

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!