Rsync小规模备份

Rsync上机实战

某公司里有一台web服务器,里面的数据很重要,但是如果硬盘坏了,数据就会丢失,现在领导要求你把数据在其他机器上做一个周期性定时备份。要求如下:

每天晚上00点整在Web服务器web01上打包备份网站程序目录并通过rsync命令推送到服务器Rsync服务器上备份保留

具体要求:

1)  web服务器web01和备份服务器rsync的备份目录必须都为/backup

2)  Web服务器站点目录假定位(/var/www/html,/app/logs)

3)  Wen服务器本地仅保留7天内的备份

4)  备份服务器上检查本分结果是否正常,并将每天的备份结果发给管理员

5)  备份服务器上每周六的数据都保留,其他备份仅保留180天备份

实际操作:

1,  构建rsync服务端:


rsync-3.0.6-9.el6_4.1.x86_64     #安装rsync软件包

创建服务端配置文件/etc/rsyncd.conf

uid =   rsync      #守护进程的虚拟账号

gid =   rsync      #守护进程的虚拟用户组

use   chroot = no  #和安全相关的

max   connections = 200    #最大连接数,同时

timeout   = 300           #超时时间

pid   file = /var/run/rsyncd.pid    #PID进程id号存放位置

lock   file = /var/run/rsyncd.lock  #锁文件

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

[backup]            #模块名称

path =   /backup       #客户端推送过来的目录

ignore   errors         #忽略错误

read   only = false      #只读为假,即可读可写

list =   false           #列表为假,不能ls

hosts   allow = 172.16.1.0/24   #允许访问的网段

auth   users = rsync_backup    #推送用的账户,可以不是系统账户

secrets   file=/etc/rsync.password #账户密码的存放位置,格式为UserName:password

[[email protected]   /]# useradd -s /sbin/nologin rsync –M #创建虚拟用户rsync,不创建家目录

[[email protected]   /]# grep ^rsync /etc/passwd   #检查一下用户是否创建成功

rsync:x:501:501::/home/rsync:/sbin/nologin

[[email protected]   /]# mkdir /backup     #创建目录

[[email protected]   /]# chown rsync:rsync /backup/ #更改目录的属主和属组,以便有权限推送

[[email protected]   /]# ll -d /backup/    #以长格式显示文件属性

drwxr-xr-x. 2   rsync rsync 4096 May  5 11:36 /backup/

[[email protected]   /]# cat >>/etc/rsync.password<<EOF

>   rsync_backup:password

> EOF

[[email protected]   /]# chmod 600 /etc/rsync.password  #因为里面存放的是明文的密码文件,所以要给他600权限,防止别人读取密码

[[email protected]   /]#rsync --daemon    #启动服务

[[email protected]   /]# netstat -ntalp | grep rsync | grep -v grep   #查看服务有没有处于监听状态

tcp  0  0  0.0.0.0:873     0.0.0.0:*   LISTEN      9079/rsync

tcp  0  0   :::873         :::*        LISTEN      9079/rsync

2,  然后进入到客户端


也安装rsync-3.0.6-9.el6_4.1.x86_64   #安装rsync软件包

创建密码文件,我们习惯和服务器端使用同一个文件/etc/rsync.password

[[email protected]   ~]# echo "password" >>/etc/rsync.password #这个文件里只需要密码

[[email protected]   ~]#chmod 600 /etc/rsync.password   #同上

[[email protected]   ~]# ll -d /etc/rsync.password

-rw-------. 1   root root 9 May  8 05:10   /etc/rsync.password

[[email protected]   ~]# mkdir /backup  #创建推送内容存在的目录

测试一下/backup目录下的内容能不能推送到rsync服务器端

[[email protected]   ~]# echo "test" >>/backup/test.txt

[[email protected]   ~]# rsync -avz /backup/ [email protected]::backup/   --password-file\=/etc/rsync.password

sending   incremental file list

./

test.txt

sent 87   bytes  received 30 bytes  234.00 bytes/sec

total size is   5  speedup is 0.04

服务端能看到刚才推送过来的内容,服务搭建完成

[[email protected]   /]# cat /backup/test.txt

test

3,  然后开始在web01服务器上创建打包文件,打包文件名包含日期,并设置存放七天


vim / scripts/html_tar.sh

#!/bin/bash

#创建一个归档压缩文件到/backup这个目录里面

IP=`/sbin/ifconfig   eth2 | /bin/awk -F "[ :]+" 'NR==2 {print $4}'`

Path=/backup/$IP

#前一天的时间

Time=`/bin/date   +"%F" -d "-1 days"`

#判断一下这个目录如果不存在就创建

[ ! -d $Path ]   && mkdir -p $Path

#打包文件并生成md5校验文件

/bin/tar -czf   $Path/conf_$Time.tar.gz /var/spool/cron/root /etc/rc.local /scripts/  && /usr/bin/md5sum   $Path/conf_$Time.tar.gz >>$Path/conf_$Time

.md5   >>/dev/null 2&>1

/bin/tar -czf   $Path/www_$Time.tar.gz /var/www/html    && /usr/bin/md5sum $Path/www_$Time.tar.gz   >>$Path/www_$Time.md5

/bin/tar -czf   $Path/logs_$Time.tar.gz /app/logs >>/dev/null 2&>1 &&   /usr/bin/md5sum $Path/logs_$Time.tar.gz >> $Path/logs_$Time.md5

#传到备份服务器上

/usr/bin/rsync   -az /backup/ [email protected]::backup/   --password-file=/etc/rsync.password

#删除7天以前的文件

find /backup   -type f -mtime +7 -name "*.tar.gz" |xargs -i rm -rf{}

find /backup   -type f -mtime +7 -name "*.md5" |xargs -i rm -rf{}    定时执行这个脚本:

[[email protected] sh]# crontab -l -u root

00 * * * *   /bin/sh  /scripts/html_tar.sh   >>/dev/null 2&>1

4,  服务器上检查备份过来的文件有没有错误


#!/bin/bash

#找到修改日期是一天以内的md5校验文件,进行校验,然后判断同步数据是否完全

fileMd5Lits=$(find /backup/ -type f -mtime   -1 -name "*.md5")

for file in $fileMd5List

do

if [ $(/usr/bin/md5sum -c $file | awk   '{print $2}') == 'OK' ]

then

echo "$file 校验完成数据,备份正常"

fi

done

#查找180天意外备份过来的目录,然后进行删除,并排除日期为星期6的不删除

fileList=`find /backup/ -type f  -mtime +180`

for i in $fileList

do

#截取这个文件的修改日期

mtime=`/usr/bin/stat $i | awk  'NR==6 {print $2}'`

#指定一个日期,查看这个日期是星期几,

week=`/bin/date -d $mtime  +%w `

#判断当前是不是星期6,不是星期六才能删除

if [ $week -ne 6 ]

then

rm -r $i

fi

done

[[email protected]   backup]# crontab -l -u root

00 3 * *   *  /bin/sh /scripts/baskup_del.sh   >>/dev/null 2&>1 #创建一个定时任务

5,  检查是否成功


[[email protected]   backup]# date -s "23:59:00 2018-05-08"

Tue May  8 23:59:00 EDT 2018

[[email protected]   backup]# cd /var/www/html/

[[email protected]   html]# touch {1..10}

然后等一分钟去服务器端看看有没有备份成功

[[email protected]   log]# ls /backup/172.16.1.8    服务端文件存在,备份脚本成功

conf_2018-05-08.md5  conf_2018-05-08.tar.gz  logs_2018-05-08.md5  logs_2018-05-08.tar.gz  www_2018-05-08.md5  www_2018-05-08.tar.gz

原文地址:http://blog.51cto.com/13447608/2114587

时间: 2024-11-09 00:59:45

Rsync小规模备份的相关文章

Centos6.5 rsync同步备份

前言:本章主要讲解实现快速.安全.高效的异地备份 实验环境:服务端A 192.168.1.10   客户端B 192.168.1.20 一,安装rsync    yum  -y  install  rsync*   新建配置文件 vi /etc/rsyncd.conf uid = nobody gid = nobody use chroot = yes address = 192.168.1.10 port 873 log file = /var/log/rsyncd.log pid file

开源服务专题之-------rsync数据备份

RSYNC是Remote Sync 远程同步的简称,与SCP的比较,SCP= 无法备份大量数据,类似windows的复制,而rsync=边复制 ,边统计,边比较,可以备份大量数据.可以镜像保存整个目录树和文件系统.可以很容易做到保持原来文件的权限.时间.软硬链接等等.无须特殊权限即可安装.快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件.压缩传输:rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽.安全:可以使用scp.ssh等方式来传输文

rsync数据备份方案

最近整理了下公司的数据备份情况.以下是部分操作的过程 1.rsync数据备份,具体备份过程就不详细介绍.数据都备份在/bakup目录下 2.删除过期数据及空目录 公司的备份数据量比较大,必须及时清除过期数据. echo "日期:$(date +%Y-%m-%d):以下是以过期31天的文件:" > /var/log/delete.log find /bakup -mtime +31 -name "*" >> /var/log/delete.log f

rsync+crontab备份方案

一.准备工作 1.1.安装Rsync 检查系统是否安装rsync 客户端NFS: [[email protected] ~]# rpm -qa rsync rsync-3.0.6-12.el6.x86_64 服务端rsync: [[email protected] ~]# rpm -qa rsync rsync-3.0.6-12.el6.x86_64 如果没有安装rsync服务 [[email protected] ~]# yum install rsync -y 1.2.配置rsync服务端:

【运维小实验】数据镜像备份实验inotify+rsync实时备份

数据镜像备份实验inotify+rsync实时备份 本文是基于VM搭建的虚拟集群环境,全部虚拟机网卡模式为NAT方式相连,处于同一网段. 搭建环境: 使用redhead 2.6.32-431.el6.x86_64版本的linux,创建两台,配置相关网络信息,确保同一网段下. 安装配置rsync+inotify Rsync一般系统默认安装了,如果没有安装的去相关网站下载安装包解压安装即可 Inotify登陆https://github.com/rvoicilas/inotify-tools/wik

rsync 全网备份

rsync全网备份 1.首先检查服务器中是否有rsync服务 查看方式使用rpm -qa|grep "rsync" 进行查看是否已存在, 如果不存在就是用yum install rsync -y 进行下载安装 2.将备份服务器端的rsync进程启动. 启动方式:rsync --daemon 然后进行查看进程是否开启 ps -ef |grep "rsync" 3.创建虚拟用户reync,并不指定家目录 创建方式 useradd -s /sbin/nologin/ -M

expect与rsync 异步并行备份数据脚本

expect与rsync 异步并行备份数据脚本 #!/bin/bash #author:qunying.liu #2014.08.02 #脚本用途:通过rsync从远程机器备份数据到本机机器对应目录 #脚本目录:/usr/local/scripts/,expect脚本目录:/usr/local/scripts/dsfilersync, #备注:一个机器对应一个exp脚本,该脚本中包含该机器所有rsync同步目录. #初始化目录 cd   /usr/local/scripts/ grep "rsy

rsync+inotify 备份

配置rsync+ inotify 实现实时同步    同步项目实战之rsync篇    1.多种备份方式的介绍    2.rsync实现目录备份    3.配置企业级无交互备份实战    4.配置rsync企业服务器实现实时同步备份方式:        完整备份 rsync 远程同步: rsync(Remote sync)  ==> 做数据备份rsync 客户端好处:优点:支持增量备份       选择性保存:符号链接,硬链接,文件属性,权限及时间等不变.       传输的执行压缩,适用于异地

2-3-2 rsync+inotify备份同步数据

RSYNC = Remote Sync 远程同步 高效,一定要结合shell 官网:https://rsync.samba.org Author: Andrew Tridgell, Wayne Davison, and others Andrew Tridgell是Samba项目的领导者和主要开发人员,同时还在参与开发rsync\Linux Kernel. 与SCP的比较:scp=无法备份大量数据,类似windows的复制 rsync=边复制 ,边统计,边比较 Rsync特性和优点 可以镜像保存