一、服务环境

(1),WEBserver(192.168.10.130) ; BACKserver(192.168.10.129)

(2),BACKserver服务器部署,安装所需软件,并启动

(3),建立系统备份用户backup(web服务器与备份服务器均建立用户)

[root@backsever ~]# useradd backup; echo backup:123456 |chpasswd
[root@backsever ~]# id backup
uid=1001(backup) gid=1001(backup) groups=1001(backup)

[root@backsever ~]# useradd backup; echo backup:123456 |chpasswd
[root@backsever ~]# id backup
uid=1001(backup) gid=1001(backup) groups=1001(backup)

(4),开放web服务器备份目录权限让backup用户操作:

[root@webserver ~]# setfacl -R -m default:backup:rwx /var/www/html/
[root@webserver ~]# setfacl -R -m user:backup:rwx /var/www/html/
[root@webserver ~]# getfacl /var/www/html/
getfacl: Removing leading '/' from absolute path names
# file: var/www/html/
# owner: root
# group: root
user::rwx
user:backup:rwx
group::r-x

mask::rwx

other::r-x
default:user::rwx
default:user:backup:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

(5),建立存储服务存放目录/web-back/,并开放权限给备份用户使用

[root@backsever ~]# mkdir /web-back/
[root@backsever ~]# chown backup:backup /web-back/

(6)复制web服务器/boot/目录下所有文件到/var/www/html/目录下进行推送测试

(7),rsync -avz --delete /var/www/html/ backup@192.168.10.129:/web-back/命令推送测试

二,在备份服务器上建立虚拟用户,并建立用户和密码文件进行定时推送备份。

(1)修改/etc/rsyncd.conf 配置文件,末尾添加以下内容:

uid = root                   #运行进程的身份                 

gid = root                 #运行进程的组           

address =192.168.10.129       #监听IP(备份服务器)

           

port =873      #监听端口                       

hosts allow =192.168.10.0/24                #允许同步客户端的IP地址,可以是网段,或者用*表示所有   

use chroot = yes       #是否囚牢,锁定家目录,rsync被黑之后,黑客无法再rsync运行的家目录之外创建文件,选项设置为yes

 

max connections =5             #最大连接数

          

pid file =/var/run/rsyncd.pid      #进程PID,自动生成

lock file =/var/run/rsyncd.lock     #指max connectios参数的锁文件

log file =/var/log/rsyncd.log          #日志文件位置

motd file =/etc/rsyncd.motd         #客户端登陆之后弹出的消息

[wwwroot]       #共享模块名称                   

path =/web-back/       #备份路径      

comment = used for web-data root    #描述

read only = false        #设置服务端文件读写权限           

list = yes        #是否允许查看模块信息                           

auth users = rsyncuser            #备份的用户,和系统用户无关,建立的虚拟备份用户              

secrets file = /etc/rsync.passwd       #存放用户的密码文件,格式是  用户名:密码

(2),创建提示文件和用户密码

[root@backsever ~]# echo "Welcome to Backup Server" > /etc/motd
[root@backsever ~]# vim /etc/rsync.passwd

rsyncuser:password123

[root@backsever ~]# chmod 600 /etc/rsync.passwd      #密码文件权限必须是600或700

(3)启动服务

[root@backsever ~]# systemctl start xinetd.service
[root@backsever ~]# systemctl enable xinetd
[root@backsever ~]# rsync --daemon --config=/etc/rsyncd.conf           #让rsync服务从配置文件启动
[root@backsever ~]# ps aux | grep rsync
root 1926 0.0 0.0 114652 316 ? Ss 07:02 0:00 rsync --daemon
root 2920 0.0 0.0 112660 972 pts/0 R+ 07:46 0:00 grep --color=auto rsyn

[root@backsever ~]# kill -9 1926    #杀掉rsync服务进程
[root@backsever ~]# ps aux | grep rsync
root 2922 0.0 0.0 112660 968 pts/0 R+ 07:48 0:00 grep --color=auto rsyn
[root@backsever ~]# rsync --daemon --config=/etc/rsyncd.conf       #重新从配置文件读取启动
[root@backsever ~]# ps aux | grep rsync  #查看已启动的rsync进程
root 2924 0.0 0.0 114652 504 ? Ss 07:48 0:00 rsync --daemon --config=/etc/rsyncd.conf
root 2926 0.0 0.0 112660 968 pts/0 R+ 07:48 0:00 grep --color=auto rsyn

(4),在web服务器上建立备份用户密码文件,使推送备份无需输入密码运行

[root@webserver ~]# vim /etc/rsync.passwd
[root@webserver ~]# cat !$
cat /etc/rsync.passwd
password123

[root@webserver ~]# chmod 600 /etc/rsync.passwd  #密码文件权限必须改为600或700不然无法读取

(5)web服务器运行命令:rsync -avz --delete  /var/www/html rsyncuser@192.168.10.129::wwwroot --password-file=/etc/rsync.passwd 进行推送备份测试

(6),测试成功,说明配置没问题,写入定时任务自动执行

[root@webserver ~]# vim autobackup.sh
[root@webserver ~]# cat !$
cat autobackup.sh
#!/bin/bash
rsync -avz --delete /var/www/html rsyncuser@192.168.10.129::wwwroot --password-file=/etc/rsync.passwd         #--password-file必须要指定web服务器密码文件绝对路径,否则无法读取!!!!

echo "0 2 * * * sh /root/autoback.sh &" >> /var/spool/cron/root      #制定定时任务,定时执行推送备份脚本

rsync 系统用户/虚拟用户 备份web服务器数据及无交互定时推送备份的更多相关文章

  1. 【Rsync项目实战】备份全网服务器数据

    [Rsync项目实战]备份全网服务器数据 标签(空格分隔): Linux服务搭建-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品,允许转载,转 ...

  2. 【Rsync项目实战一】备份全网服务器数据

    目录 [Rsync项目实战]备份全网服务器数据 [企业案例] 1.1 环境部署 1.2 开始部署backup服务器:Rsync服务端过程: 1.3 开始部署nfs01服务器:Rsync客户端过程: [ ...

  3. Python搭建Web服务器,与Ajax交互,接收处理Get和Post请求的简易结构

    用python搭建web服务器,与ajax交互,接收处理Get和Post请求:简单实用,没有用框架,适用于简单需求,更多功能可进行扩展. python有自带模块BaseHTTPServer.CGIHT ...

  4. 【NFS项目实战二】NFS共享数据的时时同步推送备份

    [NFS项目实战二]NFS共享数据的时时同步推送备份 标签(空格分隔): Linux服务搭建-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品, ...

  5. ubuntu12.04+proftpd1.3.4a的系统用户+虚拟用户权限应用实践

    目录: 一.什么是Proftpd? 二.Proftpd的官方网站在哪里? 三.在哪里下载? 四.如何安装? 1)系统用户的配置+权限控制 2)虚拟用户的配置+权限控制   一.什么是Proftpd? ...

  6. (转)linux 系统下虚拟用户的作用

    原文:http://blog.csdn.net/luoshao20120430/article/details/16900653            http://blog.csdn.net/u01 ...

  7. linux系统下搭建自己的web服务器

    之前在windows 2008 server上搭建了一个用于测试的web服务器,但是在打开网站的时候特别的慢,尤其是图片的加载都会失败,当时以为是路径的问题,但是在服务器上自己打开都特别慢,自己实在找 ...

  8. 最新的极光推送服务器端代码(java服务器后台向手机端自定义推送消息)

    一共两个类 一个Jdpush  一个JpushClientUtil 代码如下   注解都写的很清楚 package com.sm.common.ajpush; import org.slf4j.Log ...

  9. 返回用户指定页面的web服务器

    import socket import re import os def handle_client(socket_con): """ 接收来自客户端的请求,并接收请求 ...

随机推荐

  1. js 防止重复点击

    1.添加flag 适用于ajax 表单提交,提交之前flag = false , 提及中,true ,提交后false 2.事件重复点击: <script> var throttle = ...

  2. DDD实战进阶第一波(二):开发一般业务的大健康行业直销系统(搭建支持DDD的轻量级框架一)

    要实现软件设计.软件开发在一个统一的思想.统一的节奏下进行,就应该有一个轻量级的框架对开发过程与代码编写做一定的约束. 虽然DDD是一个软件开发的方法,而不是具体的技术或框架,但拥有一个轻量级的框架仍 ...

  3. android 运行时异常捕获

    1,将运行时异常捕获并存到手机SD卡上 可以直接使用logcat 命令Runtime.getRuntime().exec("logcat -f "+ file.getAbsolut ...

  4. vscode使用shell

    https://stackoverflow.com/questions/42606837/how-to-use-bash-on-windows-from-visual-studio-code-inte ...

  5. 使用URL访问http服务器

    一.概念定义 1.URI - 通用资源标识符 URI通常由三部分组成, 资源访问机制 存放资源的主机名 资源自身名称 如: http://www.baidu.com/html http://www.b ...

  6. Jetty入门(1-3)Eclipse集成gradle-Gretty插件或maven-jetty插件运行应用

    英文来源:  http://akhikhl.github.io/gretty-doc/Getting-started.html 一.gradle插件 1.使用gretty来运行jetty: gradl ...

  7. Python之面向对象四

    面向对象进阶 一.关于面向对象的两个内置函数 isinstance   判断类与对象的关系    isinstance(obj,cls)检查obj是否是类 cls 的对象,返回值是bool值 issu ...

  8. Android 6.0 以后webview不加载图片的问题

    /** * Webview在安卓5.0之前默认允许其加载混合网络协议内容 * 在安卓5.0之后,默认不允许加载http与https混合内容,需要设置webview允许其加载混合网络协议内容 */if ...

  9. Python_fullstack_test1

    1.执行Python脚本的两种方式 使用交互式的带提示符的解释器或使用源文件 2.简述位.字节的关系 位是计算机中最小计量单位,用bit表示 字节是计算机中最小存储单位,用Byte表示 1字节=8位, ...

  10. PHP 常用header头定义

    在php的开发中,我们常常需要使用到header函数头来进行做标记 header() 函数向客户端发送原始的 HTTP 报头. 常用header设置列表如下: header('HTTP/1.1 200 ...