我搭建的wordpress服务器现在使用的系统是opensuse,
服务器上面已做脚本和计划任务将wordpress使用的数据库与web目录每天压缩备份放到
/data/backup目录下
operation@opensuse-wordpress:~> tree /data
/data
├── backup
│ ├── db
│ │ ├── wordpress_20171220.sql
│ │ ├── wordpress_20171220.sql.bak
│ │ └── wordpress_20171221.sql.gz
│ └── wordpress
│ ├── wordpress_20171220.tar.gz
│ ├── wordpress_20171220.tar.gz.bak
│ └── wordpress_20171221.tar.gz
└── shell
├── mysql_backup.sh
└── wordpress_backup.sh

所以现在欠缺的是再弄个异地备份(opensuse充当服务器,平常使用的公司pc充当客户端去拿取数据备份回来),
这一步实现后再考虑在云上专门用一台服务器做为存储备份的服务器,opensuse上传或同步备份数据到文件服务器上,
任意客户端安装同步的客户端软件从文件服务器上面拉取数据下来(其实就是私有性质的坚果云)。

1、opensuse上安装rsync做为同步文件服务端
operation@opensuse-wordpress:~> sudo zypper in rsync
[sudo] password for root:
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
rsync

1 new package to install.
Overall download size: 323.2 KiB. Already cached: 0 B. After the operation, additional 625.5 KiB will be used.
Continue? [y/n/...? shows all options] (y): y
Retrieving package rsync-3.1.0-8.4.x86_64 (1/1), 323.2 KiB (625.5 KiB unpacked)
Retrieving: rsync-3.1.0-8.4.x86_64.rpm .....................................................................[done]
Checking for file conflicts: ...............................................................................[done]
(1/1) Installing: rsync-3.1.0-8.4.x86_64 ...................................................................[done]

2、配置rsync
rsync服务器端需要两个配置文件:rsyncd.conf、rsyncd.secrets。
其中rsyncd.conf默认存放在/etc/目录下,同时它也是rsync服务器的主配置文件。
该文件配置了rsync服务器的控制认证、访问、日志记录等等。而rsyncd.secrets主要用于存储rsync用户名和密码。
如果是编译安装的rsync是不会生成以上这两个配置文件的,需要我们手工进行创建。
不过在这我是用zypper安装的,当然直接在/etc下面就有rsyncd.conf和rsyncd.secrets文件。
sudo vim /etc/rsyncd.conf

gid = users
read only = true
use chroot = true
transfer logging = true
log format = %h %o %f %l %b
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
hosts allow = trusted.hosts
slp refresh = 300
use slp = false
secrets file=/etc/rsyncd.secrets
##以上是全局配置

[backup]
uid = root
gid = root
path = /data/backup
ignore errors
read only = true
auth users = wordpress
secrets file = /etc/rsyncd.secrets
#以上是针对备份同步目录的配置

rsync默认是在nobody用户下运行的,
但是我们测试为了同步时不为各种权限的事情烦恼,就让其在root用户下运行。

配置文件修改完成后,到创建密码文件:
vim /etc/rsyncd.secrets
将wordpress的用户和密码编辑进去,例如:
wordpress:ABCabc123

注:该密码文件中的用户和密码可以进行自定义,同时该用户不一定要在服务器中的系统用户中存在。密码文件创建完毕后,还需要将其权限设置为600,否则会在以后同步时提示验证出错。(zypper安装完成的不用再做此步骤也是600了)
chmod 600 /etc/rsyncd.secrets

一个rsync配置文件中可以包含多个认证模块(比如上面列表的[backup]),同时一个密码文件中也可以存放多个用户和其对应的密码。其中每一个认证模块可以对应不同的客户端。

3、启动rsync
sudo rsync --daemon
可以pstree看rsync进程是否有运行和netstat看873端口开起来没有。

4、windows客户端安装rsync
https://www.itefix.net/cwrsync
最新版cwRsync-5.5.0-32位的下载链接如下:
https://www.itefix.net/dl/cwRsync_5.5.0_x86_Free.zip

下载解压完成,双击目录下的cwrsync.cmd或在cmd命令提示窗口下运行完成批处理安装。
安装完成后,阿里云服务器安全组上开通873端口(放行rsync)

运行rsync命令去拉取服务器上的备份目录文件,出现报错:
D:\soft\cwRsync\bin> ./rsync -avz wordpress@39.x.x.x::backup /wordpress
@ERROR: access denied to backup from UNKNOWN (183.x.x.x)
rsync error: error starting client-server protocol (code 5) at main.c(1648) [Receiver=3.1.2]

还是拒绝客户端的访问,于是我在配置文件中直接插入一句
hosts allow = 183.x.x.x

注:x.x.x是指代你服务器和客户端ip地址。在这里我不能直接暴露真实的ip出来。实际上操作的时候当然不是敲x.x.x。

再尝试就可以出现让你输入密码的交互了,可见默认全局配置是禁止了外网访问?
D:\soft\cwRsync\bin> ./rsync -avz wordpress@39.x.x.x::backup /wordpress
Password:
(注:密码交互输入时不会显示密码)
receiving incremental file list
created directory /wordpress
./
db/
db/wordpress_20171220.sql
db/wordpress_20171220.sql.bak
db/wordpress_20171221.sql.gz
db/wordpress_20171222.sql.gz
wordpress/
wordpress/wordpress_20171220.tar.gz
wordpress/wordpress_20171220.tar.gz.bak
wordpress/wordpress_20171221.tar.gz
wordpress/wordpress_20171222.tar.gz

sent 195 bytes received 146,589,159 bytes 133,202.50 bytes/sec
total size is 149,629,764 speedup is 1.02

当然,后面要做成计划任务是不想再弹密码输入交互的,新建一个单纯存放密码的文本文件,
将密码保存进去后,命令就会变成:
D:\soft\cwRsync\bin> ./rsync -avz wordpress@39.x.x.x::backup /wordpress --password-file=/passwd.txt
receiving incremental file list

sent 22 bytes received 331 bytes 706.00 bytes/sec
total size is 149,629,764 speedup is 423,880.35
注意:在上面命令中我是将备份文件都同步到D:\soft\cwRsync\wordpress路径中,/根目录就是cwRsync安装的目录。
如果是要定义放到windows系统的D盘则路径表示为/cygdrive/d/
不想每次都进入到cwRsync目录下再执行命令,就在系统环境变量Path中添加上D:\soft\cwRsync\bin就可以了。

5、执行计划任务去同步服务器的备份文件

把上述命令,写到一个批处理文件中,然后在任务计划中进行配置。
新建rsync_wordpress.bat文件中写入一行:
rsync -az wordpress@39.x.x.x::backup /wordpress --password-file=/passwd.txt
保存。
打开任务计划程序,创建任务,设置好计划任务,
触发器是每天的中午12点40分,操作是运行批处理脚本rsync_wordpress.bat。

验证生效。

文:铁乐与猫

wordpress利用rsync同步备份的更多相关文章

  1. rsync同步备份

    一.服务器端.备份客户端安装 rsync 服务. 1.环境: CentOS 主 IP:172.16.3.18 备 IP:172.16.3.19 2.安装 rsync 软件 #yum install r ...

  2. rsync同步备份搭建

    Rsync 是 Unix/Linux 下的一款应用软 在平常的运维中进常要对一些数据进行备份,以防止意外的服务器故障导致不可避免的后果,tar,cp只能适应一些小范围backup,对于几T甚至几P的数 ...

  3. 利用Rsync同步工具上传、删除目标文件

    Rsync是文件备份工具,当然也可以当做传输工具,管理远程服务器的文件 上传 rsync -avzP --progress --port 9106 /path/.../指定文件 root@192.16 ...

  4. wordpress使用rsync加openvpn进行同步和备份

    目录 wordpress使用rsync加openvpn进行同步和备份 环境 普通同步策略的弊端 改良的同步方案 从头细说起 备份数据 打包wordpress项目和备份 服务端安装rsync 服务端配置 ...

  5. 利用rsync备份生产应用(一)

    rsync简单介绍 Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.Rsync使用所谓的"Rsync算法"来 ...

  6. Rsync + sersync 实时同步备份

    一      Rsync + Sersync  实时同步介绍 1.Rsync 服务搭建介绍 云机上搭建Rsync server,在本地搭建Rsync Clinet. 2. Sersync 服务搭建介绍 ...

  7. 搭建中小规模集群之rsync数据同步备份

    NFS重要问题 1.有关NFS客户端普通用户写NFS的问题. 1)为什么要普通用户写NFS. 2)exports加all_squash. Rsync介绍 什么是Rsync? Rsync是一款开源的.快 ...

  8. CentOS 6.5 rsync+inotify实现数据实时同步备份

    CentOS 6.5 rsync+inotify实现数据实时同步备份 rsync    remote sync 远程同步,同步是把数据从缓冲区同步到磁盘上去的.数据在内存缓存区完成之后还没有写入到磁盘 ...

  9. 同步备份工具之 rsync

    1.常用同步方法 SCP. NFS. SFTP. http. samba. rsync. drbd(基于文件系统同步,效率高) 2.rsync 介绍 rsync,英文全称是 remote synchr ...

随机推荐

  1. 既之前的基础,先写个简单的PHP 与数据库 的数据交流

    程序分三个板块, 现在先不用 css 和 javascript     先用纯 html  php  写吧. 所以那些 嵌入式 <font  size=....  什么的看看就算了,不推荐如此使 ...

  2. CUBA 7 新特性(上篇)

    三年前,我们宣布了 CUBA 框架的第二个公开的主版本.CUBA 6 是改变游戏规则的版本 - 框架的许可从私有化变成了公开的 Apache2.0.那些日子里,我们甚至猜不到这个变化会最终将框架带向何 ...

  3. [Codeforces Round#488]Div.2

    总结 这是我无聊透顶肝到三点半的一场 cf ,结果还真够无聊的 这套题涵盖了英语题,语文题,模拟题.注重考查了选手的英语素养能力,语文阅读能力和精湛的模拟和枚举能力.是不可多得的一套好题. 没什么单独 ...

  4. Ajax中的同步和异步

    var flag=true; ; $.ajax({ url: "http://www.jb51.net/", success: function(data){ flag=false ...

  5. JPA之@Entity、@Table、@Column、@Id

    Java Persistence API定义了一种定义,可以将常规的普通Java对象(有时被称作POJO)映射到数据库.这些普通Java对象被称作Entity Bean.除了是用Java Persis ...

  6. spring定时任务(@Scheduled注解)

    (一)在xml里加入task的命名空间 xmlns:task="http://www.springframework.org/schema/task" http://www.spr ...

  7. iOS交互h5— JavaScriptCore ---UIWebview

    JavaScriptCore这个框架,从而让web页面和本地原生应用交互起来非常方便,而且使用此框架可以做到Android那边和iOS相对统一, web前端 在三端交互中,web前端开发人员来定义,让 ...

  8. NGINX防御CC攻击教程

    CC攻击即http flood,以攻击成本低(只需数台http代理服务器即可实现攻击).隐蔽性强(中小CC攻击一般不会造成网络瓶颈).难防御(与正常访问的请求很难区分开).威力强大(造成和DDOS流量 ...

  9. 使用google-gson类库解析json文件

    使用google-gson类库解析json文件 使用JsonParser解析器来解析字符串和输入流,变成json对象 代码如下: public class Readjson { public stat ...

  10. spring boot入门笔记 (二) - application.properties配置文件

    项目最重要的一个东西,用来定义整个项目的一些东西(端口.访问项目的名称.数据源.日志.集成mybatis等框架.静态资源目录.thymeleaf.热部署等),很重要很重要的. #整个项目的端口号,默认 ...