MoeWah 已经在网站上发布了多篇备份相关的文章,希望大家在其中已经获得了自己想要的东西,现在,MoWah再补充一下Rsync备份的相关内容,提到Rsync,很多熟识Linux的朋友都不会陌生,很多Linux的镜像都是采用这种方式进行同步的。网络上更是有很多人采用了Rsync配合DNS,为网站架设多个镜像站点的案例。本文仅粗浅的介绍一个使用Rsync进行网站备份的方法,也欢迎大家补充更多内容。

rsync.png

首先,我们假定网站所在的服务器为A服务器,备份服务器为B服务器。安装rsync的方法就不说了,Linux直接yum/apt-get install rsync 就可以了

1.用ssh-key-gen命令在A服务器上创建公钥和密钥(目的是免密码登录B服务器)

ssh-keygen -t rsa

2.在A服务器上运行 ssh-copy-id 命令把公钥复制到B服务器(.ssh/authorized_key)上,期间需要输入B服务器的密码

ssh-copy-id -i ~/.ssh/id_rsa.pub root@B服务器的ip

如果出现形如如下错误

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
xxxxxxxx
Please contact your system administrator.
Add correct host key in /home/conbar/.ssh/known_hosts to get rid of this message.
Offending key in /home/conbar/.ssh/known_hosts:10
RSA host key for xxxxxx has changed and you have requested strict checking.
Host key verification failed.

在A服务器下运行如下命令

ssh-keygen -R B服务器的ip

3.在A服务器上尝试登录B服务器

ssh B服务器ip

如果成功就没问题了

4.A服务器建立备份脚本(本文示例是在/root下建立了backup.sh文件):

示例1(先打包再同步):

#!/bin/bash
echo "Now packing your database..."
mysqldump -uroot -p数据库密码 数据库名称> backup.sql
echo "Now your files..."
tar zcvfP backup.tar.gz 网站目录(如/home/wwwroot)
echo "rsync start..."
echo "Database file is under rsync..."
rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /root/backup.sql B服务器ip:/home/
echo "Now your files..."
rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /root/backup.tar.gz B服务器ip:/home/
echo "Complete!"

示例2(直接同步网站目录,可实现增量备份):

#!/bin/bash
echo "Now packing your database..."
mysqldump -uroot -p数据库密码 数据库名称> backup.sql
echo "rsync start..."
echo "Database file is under rsync..."
rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /root/backup.sql B服务器ip:/home/
echo "Now your files..."
rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /home/wwwroot B服务器ip:/home/
echo "Complete!"

5.为备份脚本增加运行权限

chmod +x backup.sh
运行sh backup.sh进行备份尝试

6.设置crontab(crontab -e命令)进行定期备份(每周二、周四凌晨4点开始备份)

# m h  dom mon dow   command
0 4 * * 1,4       /bin/bash /root/backup.sh

相关推荐

  1. Duplicacy CLI 快速入门指南
  2. Duplicity:企业级的增量备份与数据恢复工具
  3. Ubuntu/Debian 系统安装配置 UFW 简单防火墙
  4. CentOS 7 安装使用 iptables 防火墙方法介绍
  5. Linux 服务器配置密钥实现远程免密登录
  6. CentOS 7 firewalld 防火墙常用命令汇总
文章作者:喵斯基部落
原文地址:https://www.moewah.com/archives/826.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。