rsync备份
Posted gspblog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rsync备份相关的知识,希望对你有一定的参考价值。
目录
一.服务端设置
安装rsync服务
[root@backup ~]# yum install -y rsync
修改配置文件
[root@backup ~]# vim /etc/rsyncd.conf
## 指定进程启动uid
uid = rsync
## 指定进程启动gid
gid = rsync
## rsync服务的端口
port = 873
## 无需让rsync以root身份运行,允许接收文件的完整属性
fake super = yes
## 禁锢指定的目录
use chroot = no
## 最大连接数
max connections = 200
## 超时时间
timeout = 600
## 忽略错误
ignore errors
## 不只读(可读可写)
read only = false
## 不允许别人查看模块名
list = false
## 传输文件的用户
auth users = gsp_bak
## 传输文件的用户和密码文件
secrets file = /etc/rsync.passwd
## 日志文件
log file = /var/log/rsyncd.log
#####################################
## 模块名
[gsp]
## 注释,没啥用
comment = my backup
## 备份的目录
path = /backup
创建所需用户,目录,文件
# 根据配置文件内容,创建出来需要的用户,目录,密码文件...
#1.创建用户
[root@backup ~]# useradd rsync -s /sbin/nologin -M
#2.创建备份目录
[root@backup ~]# mkdir /backup
#3.修改属组和属主
[root@backup ~]# chown -R rsync.rsync /backup/
#4.创建用户名和密码存放的文件
[root@backup ~]# vim /etc/rsync.passwd
gsp_bak:123
或者
[root@backup ~]# echo ‘gsp_bak:123‘ > /etc/rsync.passwd
#5.修改密码文件的权限为600
[root@backup ~]# chmod 600 /etc/rsync.passwd
#6.启动服务并且加入开机自启
[root@backup ~]# systemctl start rsyncd
[root@backup ~]# systemctl enable rsyncd
#7.检测端口
[root@backup ~]# netstat -lntup|grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 18373/rsync
tcp6 0 0 :::873 :::* LISTEN 18373/rsync
二.客户端设置
创建客户端密码文件
[root@web01 ~]# echo ‘123‘ > /etc/rsync.pass
修改文件权限
[root@web01 ~]# chmod 600 /etc/rsync.pass
推送
#从客户端往服务端推送重要备份文件
rsync [-avz] 源文件 gsp_bak@10.0.0.41::[模块] + 密码文件路径
rsync -avz /etc/shadow gsp_bak@10.0.0.41::gsp --password-file=/etc/rsync.pass
rsync的简单语法
## rsync 重要选项
-a #归档模式传输, 等于-tropgDl
-v #详细模式输出, 打印速率, 文件数量等
-z #传输时进行压缩以提高效率
--delete #让目标目录和源目录数据保持一致
--password-file=xxx #使用密码文件
------------------- -a 包含 ------------------
-r #递归传输目录及子目录,即目录下得所有目录都同样传输。
-t #保持文件时间信息
-o #保持文件属主信息
-p #保持文件权限
-g #保持文件属组信息
-l #保留软连接
-D #保持设备文件信息
----------------------------------------------
-L #保留软连接指向的目标文件
-e #使用的信道协议,指定替代rsh的shell程序
--exclude=PATTERN #指定排除不需要传输的文件模式
--exclude-from=file #文件名所在的目录文件
rsync密码环境变量
#使用rsync服务时,推 拉客户端都要配置密码
#使用环境变量,可以不配置,直接写密码(常在脚本中)
[root@web01 ~]# export RSYNC_PASSWORD=123 直接写密码
[root@web01 ~]# rsync -avz /root/back.sh gsp_bak@10.0.0.41::gsp 把back.sh 使用gsp模块推给服务端
三.简单的定时备份脚本
备份脚本
#写打包etc目录且命名发送的脚本
[root@web01 ~]# vim back.sh
#!/bin/bash
#密码环境变量
export RSYNC_PASSWORD=123
#打包
cd / &&tar -zcf /tmp/back/$(date +%F)-$(hostname).etc.tar.gz etc
#rsync 推送
/usr/bin/rsync -avz /tmp/back/$(date +%F)-$(hostname).etc.tar.gz gsp_bak@10.0.0.41::gsp
#授权脚本
[root@web01 ~]# chmod 755 back.sh
写定时任务
[root@web01 ~]# crontab -e
#每天凌晨1点备份/etc目录到服务端
00 1 * * * /usr/bin/sh /root/back.sh
以上是关于rsync备份的主要内容,如果未能解决你的问题,请参考以下文章