ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

全网备份服务器rsync

2021-06-27 09:32:26  阅读:161  来源: 互联网

标签:rsync -- 备份 全网 etc 172.16 backup


熟知:rsync参数
rsync命令 1v4
a.本地备份数据cp

b.远程备份scp
scp -rp /tmp root@172.16.1.41:/backup   r递归,p保持原有属性
rsync -rp /tmp root@172.16.1.41:/backup 备份目录以及文件
rsync -rp /tmp/ root@172.16.1.41:/backup 只备份目录下的所有文件 推送
rsync -rp root@172.16.1.41:/backup /tmp 拉取数据

c.替代删除命令
rsync -rp --delete /tmp root@172.16.1.41:/backup 实现无差别同步数据
快速删除大文件目录下文件可以用比 rm快

d.替代查看文件命令 ls
rsync /etc/hosts

客户端推送是备份,拉取是恢复,服务端正好相反
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
SRC:要推送的备份数据信息
USER@:指定认证用户信息
HOST:指定远程主机ip或主机名称
::DEST :备份服务器的模块信息
rsync -avz /etc/hosts rsync_backup@172.16.1.100::ftp

rsync 命令参数  详细说明 man  rsync
-v, --verbose 显示详细的传输信息
-a, --archive 命令归档参数rtopgDl
-z, --compress 传输过程中压缩数据
-r, --recursive 递归参数
-t, --times 保持文件的属性信息时间不变(修改时间)
-o, --owner 保持文件属主信息不变
-g, --group 保持文件属组信息不变
ps:如何让-o和-g参数生效,需要把uid和gid修改成root,需要将fake super=no或注释
-p, --perms 保持文件权限不变
-D 保持设备文件信息不变
-l ,--links 保持链接文件属性不变
-L, 保持链接文件数据信息不变
-P 显示文件传输进度信息
--exclude=PATTERN 排除指定数据不被传输
--exclude-from=FILE 排除指定数据不被传输(批量排除)
--bwlimit=RATE 显示传输速率 100M/8=12.5M
--delete 无差异同步参数,我有的你也有,我没有的你也不能有(慎用)

部署rsync服务

第一步安装rsync

yun install -y rsync

第二步配置server端配置文件

man rsyncd.conf   查看配置文件官方文档说明

vim  /etc/rsyncd.conf

uid = rsync 指定管理备份目录的用户
gid = rsync 用户组
port = 873 定义rsync服务端口号
fake super = yes 伪装成超级管理员
use chroot = no       和安全相关的配置
max connections = 4 最大连接数,同时在线数
timeout = 900 超时时间(秒)
pid file = /var/run/rsyncd.pid 记录进程号信息,1.快速结束进程 2.判断进程是否运行
log file = /var/log/rsyncd.log 日志文件
lock file = /var/run/rsyncd.lock 锁文件
ignore errors 忽略传输中简单的小错误
read only = false 指定目录可读可写
list =false (true)查看可以用的模块rsync root@172.16.1.41::
hosts allow = 172.16.1.0/24 允许传输的主机(白名单)
hosts deny = 0.0.0.0/32 黑名单
auth users = rsync_backup 指定认证用户
secrets file = /etc/rsync.passwd 指定认证用户密码文件

[ftp] 模块信息
path = /home/ftp 指定备份目录
comment = ftp export area 说明信息

第三步

创建虚拟用户

useradd rsync  -M -s /sbin/nologin

创建备目录并修改属主组信息
mkdir /backup
chown rsync.rsync /backup

创建用户证密码文件
echo "rsync_backup:123456" >/etc/rsync.passwd
chmod 600 /etc/rsync.passwd

重启服务 systemclt restart rsyncd

第四步

客户端创建一个密码文件
echo "123456" >/etc/rsync.password
chmod 600 /etc/rsync.password
免交互备份 测试
rsync -avz /etc/hosts rsync_backup@172.16.1.41::ftp --password-file=/etc/rsync.passwd

补充说明:

排除相对路径
rsync -avz /oldboy --exclude=b/1.txt --exclude=c/ rsync_backup@172.16.1.41::ftp --password-file=/etc/rsync.passwd 排除目录oldboy下b目录下的1.txt和c目录
绝对路径
rsync -avz /oldboy --exclude=/oldboyb/1.txt --exclude=/oldboyc/ rsync_backup@172.16.1.41::ftp --password-file=/etc/rsync.passwd 排除目录oldboy下b目录下的1.txt和c目录
批量排除exclude.txt文件内是所要排除的文件
rsync -avz /oldboy --exclude-from=/oldboyb/exclude.txt rsync_backup@172.16.1.41::ftp --password-file=/etc/rsync.passwd 排除目录oldboy下b目录下的1.txt和c目录

守护进程创建备份目录
rsync -avz /etc/hosts rsync_backup@172.16.1.41::ftp/nfs01/ --password-file=/etc/rsync.passwd

 

tar -zchf /backup/system_backup_$(date +%F_week%w).tar.gz ./etc/hosts 相对路径压缩-h把链接所指向的源文件压缩保存
find /backup -type f -mtime +7 |xargs rm 查找七天前的文件并删除
date +%F_week%w 日期和周
find /backup -type f -mtime +180 ! -name "*week1.tar.gz" 保留周一的信息,!取反

两种方法,在客户端创建标识备份目录,或者直接在服务端创建备份目录
rsync -avz /backup rsync_backup@172.16.1.41::ftp/nfs01/ --password-file=/etc/rsync.passwd
rsync -avz /backup/nfs01 rsync_backup@172.16.1.41::ftp --password-file=/etc/rsync.passwd

验证数据的完整性
md5sum /etc/hosts 生成算法 f902920a028584bd72ed37668305c3ce /etc/hosts

find /backup -type f -mtime +7 |xargs md5sum>>/backup/finger.txt 生成指纹文件finger.txt
find /backup/ -type f -mtime -1 ! -name "finger*"|xargs md5sum >/backup/10.0.0.31/finger.txt

如何验证数据完整性原理
利用md5算法进行验证数据完整性
md5sum -c 指纹文件命令执行原理
第一个历程: 打开一个指纹文件,将信息记录到缓存中
第二个历程: 根据指纹文件的路径信息,生成md5数值信息
第三个历程: 将新生成md5数值和原有指纹文件中的数值进行比较
第四个历程: 如果相同显示结果为ok,如果不同显示failed

把校验的结果重定向到/tmp/check.txt
find /backup/ -type f -name "finger.txt"|xargs md5sum -c &>/tmp/check.txt

03. 如何实现发送邮件
a 配置163企业邮箱
b 编写linux服务邮件相关配置文件
vim /etc/mail.rc
set from=邮箱地址 smtp=smtp.163.com
set smtp-auth-user=邮箱地址 smtp-auth-password=授权码 smtp-auth=login
systemctl restart postfix.service
c 发送邮件测试
echo "邮件发送测试"|mail -s "邮件测试" 330882721@qq.com
mail -s "邮件测试" 330882721@qq.com </tmp/check.txt


编写全网备份脚本
客户端脚本:
nfs01服务器备份脚本:
#/bin/bash

backup_dir="/backup"
IP_info=$(hostname -i)

#crete backup dir
mkdri /$backup_dir/$IP_info

#tar back data
cd /
tar -zchf ./$backup_dir/$IP_info/system_backup_$(date +%F_week%w).tar.gz ./etc/hosts

#del 7 day ago data
find /$backup_dir -type f -mtime +7 |xargs rm

#create finger file
find /$backup_dir/ -type f -mtime -1 ! -name "finger*"|xargs md5sum >/$backup_dir/$IP_info/finger.txt

#backup push data info
rsync -az /$backup_dir/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.passwd

web01服务器备份脚本:
省略

服务端脚本:

测试检验脚本方法: sh -x 脚本信息

标签:rsync,--,备份,全网,etc,172.16,backup
来源: https://www.cnblogs.com/z-macro/p/14939900.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有