Linux定时备份数据库和同步至远程服务器

1.备份数据库

1.1sql脚本备份

#导出数据库

#pwd即root的密码 与-p之前不能空格隔开

/usr/bin/mysqldump -u root -ppwd database > database2081218.sql

#导入数据库

/mysql -u root -p database < database20181218.sql

1.2压缩包形式

#导出数据库

/usr/bin/mysqldump -u root -ppwd database | gzip > database20181218.sql.gz

#导入数据库

gzip < database20181218.sql.gz | mysql -u root -p database

2.利用/etc/crontab指定定时备份

2.1创建备份目录

#root 用户创建备份目录

mkdir -p /bak/mysqlbak

cd /bak/mysqlbak

2.2编写备份脚本

vim /usr/sbin/bakmysql.sh

===================================以下为脚本代码==========================

#!/bin/bash

#Name:backmysql.sh

#This is a shell script for auto DB backup and delete old backup

backupdir=/bak/mysqlbak

time=` date +%Y%m%d%H `

mysql_bin_dir/mysqldump -u root -ppwd database | gzip > $backupdir/database$time.sql.gz

# 格式要求:-exec 要执行的命令 空格{}空格\;

find $backupdir -name "databasename_*.sql.gz" -type f -mtime +7 -exec rm {}  \ ; > /dev/null 2>&1

脚本说明:

backupdirmysql备份地址
rootmysql用户名
pwdmysql密码
database数据库名
mysql_bin_dirmysql的bin路径
time=` date +%Y%m%d%H ` 或者time="$(date +"%Y%m%d$H")"获取日期格式
type f表示查找普通类型的文件,f表示普通文件
mtime +7按照文件的更改时间来查找文件,+7表示更改时间距离现在7天以前
mmin +5文件更改时间距离现在5分钟以前
exec rm { }表示执行一段shell命令
/dev/null 2>&1把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去,&后台运行

2.3为sh脚本添加执行权限

chmod +x /usr/sbin/backmysql.sh

2.4在/etc/crontab添加定时任务

vim /etc/crontab

#在最后一行加入

#crontab配置文件格式 分 时 日 月 周  命令

#表示每天3点00分执行备份

00 3 * * * root /user/sbin/backmysql.sh

2.5重启crontab

/etc/rc.d/init.d/crond restart

即可完成定时备份并清理前7天的备份数据

3.同步到其他服务器

使用Linux同步文件工具rsync+inotify来进行文件的同步

rsync

rsync是类unix系统下的数据镜像备份工具——remote sync。一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步

用法:rsync src dest

## 将本地/bak/mysqlbak/文件同步到 远程服务器 /bak/mysql/bak 目录下面 排除 mysqlbak/index目录 通过ssh端口

rsync -vzacu /bak/mysqlbak/ root@192.168.53.86:/bak/mysqlbak --exclude "mysqlbak/index" -e "ssh -p 22"

# 将远程目录 /bak/mysqlbak下的文件同步到本地 /bak/mysqlbak/目录下

rsync -vzrtopg --progress --delete root@192.168.53.85:/bak/mysqlbak /bak

 

同步后续补充

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值