一、服务环境

(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. php的格式化数字函数

    php格式化数字:位数不足前面加0补足 php格式化数字:位数不足前面加0补足 感谢:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/12 ...

  2. B树和B+树的插入、删除图文详解

    简介:本文主要介绍了B树和B+树的插入.删除操作.写这篇博客的目的是发现没有相关博客以举例的方式详细介绍B+树的相关操作,由于自身对某些细节也感到很迷惑,通过查阅相关资料,对B+树的操作有所顿悟,写下 ...

  3. JavaScript Cookie使用实例

    # Session-Cookie //  利用Cookie防止在1分钟内多次提交: function SetCookie (name, value) { var Days = 30; var exp ...

  4. 云计算学习(5-1)云平台产品介绍-华为的FusionCloud产品

    FusionSphere云平台:继承了虚拟化和云管理系统,为企业构建私有云  FusionManager:云管理平台(管理计算虚拟化.网络虚拟化.存储虚拟化) FusionCompute.Fusion ...

  5. OAuth2.0学习(1-1)OAuth2.0是什么?

    目前很多开放平台如新浪微博开放平台都在使用提供开放API接口供开发者使用,随之带来了第三方应用要到开放平台进行授权的问题 OAuth就是用于为第三方应用授权访问用户的资源应用的. 目前有OAuth1. ...

  6. git初试

    在gitLab上新建一个项目,creat项目文件之后,进入到项目的路径之后,复制命令git clone ‘git@gitlab.touzila.com:xiacaixiang/gitgitTest1. ...

  7. uvalive 3213 Ancient Cipher

    https://vjudge.net/problem/UVALive-3213 题意: 输入两个字符串,问是否可以由第一个字符串的每个字符一一映射得到第二个字符串,字符是可以随意移动的. 思路: 统计 ...

  8. Why deep learning?

    1. 深度学习中网络越深越好么? 理论上说是这样的,因为网络越深,参数也越多,拟合能力也越强(但实际情况是,网络很深的时候,不容易训练,使得表现能力可能并不好). 2. 那么,不同什么深度的网络,在参 ...

  9. [Leetcode] 220. Contains Duplicate III

    Given an array of integers, find out whether there are two distinct indices i and j in the array suc ...

  10. Git Bash

    Git Bash是Git的命令行工具,可以执行Git的所有命令,但是当我们想把一个URL粘贴到Git Blash时,Ctrl+V或者右键粘贴不起作用了 方法1-使用快捷键"Insert&qu ...