我搭建的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. 布局管理器之CardLayout(卡片布局管理器)

    对于选项卡这个概念大家可能不会陌生,就是在一个窗口中可以切换显示多页不同的内容,但同一时间只能是其中的某一页可见的,这样的一个个的页面就是选项卡. CardLayout就是类似的这样一个布局管理器,它 ...

  2. spring AOP 之四:@AspectJ切入点标识符语法详解

    @AspectJ相关文章 <spring AOP 之二:@AspectJ注解的3种配置> <spring AOP 之三:使用@AspectJ定义切入点> <spring ...

  3. rails render

    Render結果 在根據request資訊做好資料處理之後,我們接下來就要回傳結果給用戶.事實上,就算你什麼都不處理,Action方法裡面空空如也,甚至不定義Action,Rails預設也還是會執行r ...

  4. golang基础--map字典

    map 类似python语言中的dict(字典类型),以key-value形式存储数据 Key必须是支持==或!=比较运算的类型,不可以是函数,map或slice map查找比线性搜素快很多,但比使用 ...

  5. Beta阶段——Scrum 冲刺博客第四天

    一.当天站立式会议照片一张 二.每个人的工作 (有work item 的ID),并将其记录在码云项目管理中 昨天已完成的工作 完成对question界面的制作,完善随机出题界面,能够流畅的切换下一题与 ...

  6. button按钮被输入法顶起来,遮盖了input输入框

    在做手机端的表单提交的时候,在chrome浏览器调试的时候,忘记输入法会引起布局的问题.在webApp里input输入框,会自动调起输入法,但是输入法会改变浏览器的可视区域的大小.就是会把浏览器可视区 ...

  7. chown -R 用户名:组名 ./ 及 chown用法介绍

    当我们在不通过yum(CentOS).apt-get(Ubuntu)来安装MySQL的时候,通常执行以下命令来改变目录的拥有者: [root@localhost ~]# chown -R mysql: ...

  8. C#语法之Linq查询基础一

    Linq做.Net开发的应该都用过,有些地方很复杂的逻辑用Linq很方便的解决.对于Linq to object.Linq to xml.Linq to sql.Linq to Entity(EF)都 ...

  9. 如何在生产环境禁用swagger

    pringMVC集成springfox-swagger2和springfox-swagger-ui很简单,只需要两步: (1)pom中添加依赖 <dependency> <group ...

  10. 打造自己的LinQProvider(四)

    打造自己的LinqProvider *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...